iT邦幫忙

2023 iThome 鐵人賽

DAY 11
5
Software Development

Spring Boot 零基礎入門系列 第 11

Spring Boot 零基礎入門 (12) - Spring AOP 的用法 - @Aspect

  • 分享至 

  • xImage
  •  

在 pom.xml 載入 Spring AOP 的功能


如果想要在 Spring Boot 中使用 Spring AOP 的功能的話,首先會需要在 pom.xml 檔案中新增下列的程式,這樣才能將 Spring AOP 的功能給載入進來,後續我們才能夠在 Spring Boot 中使用 Spring AOP 所提供的註解。

所以大家可以先打開左邊側邊欄中的 pom.xml 檔案,然後在第 25 行~第 28 行處,添加下面的程式:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-aop</artifactId>
</dependency>

添加好上述的程式之後,此時在 pom.xml 的右上角會出現一個 M 符號,這時記得要點擊一下 M 符號,才能夠成功更新這個 Spring Boot 程式,把 Spring AOP 的功能給載入進來。

12-2.png

載入好 Spring AOP 的功能之後,接下來我們就可以在 Spring Boot 中使用 Spring AOP 專屬的註解,去實作一個 AOP 的切面出來了!

創建切面的方法:@Aspect


如果想要使用 Spring AOP 去創造一個新的切面出來的話,我們就只要在 class 上面,去加上一個 @Aspect 的註解,這樣子就可以成功創建一個切面出來了。

譬如說我們可以先創建一個新的 class 叫做 MyAspect,然後在上面加上 @Aspect,這樣就可以將 MyAspect 變成是一個切面了。

12-3.png

不過在使用 @Aspect 去創建新切面時,有一點一定要特別注意,就是「只有 Bean 才可以變成一個切面」。

所以換句話說的話,在使用 @Aspect 去創建一個新的切面時,同時也必須要使用 @Component,將這個 class 變成是一個 Bean,這樣子 @Aspect 的切面設定才會真的生效!!如果單純只有在 class 上面加上 @Aspect 的話,是完全沒有任何效果的!

所以大家在實作時一定要記得,在創建切面時,「@Component@Aspect 要一起使用」 就對了。

在切入點方法「執行前」執行切面:@Before


創建好切面 MyAspect 這個切面 class 之後,我們就可以在這個 class 裡面,去撰寫切面的方法了。

舉例來說,我們可以在 MyAspect 裡面,先寫上一個 before() 方法,然後在這個 before() 方法裡面,輸出一行「I'm before」的訊息到 console 上。

12-4.png

接著,只要我們在這個 before() 方法上面,去加上一個 @Before 註解,並且在後面的小括號中,去指定想要的切入點,這樣子就可以在這個切入點的方法 「執行前」,去執行這個 MyAspect 中的 before() 方法了。

12-5.png


上一篇
Spring Boot 零基礎入門 (11) - Spring AOP 簡介
下一篇
Spring Boot 零基礎入門 (13) - Spring MVC 簡介
系列文
Spring Boot 零基礎入門29
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

1
凱文大叔
iT邦新手 3 級 ‧ 2023-11-04 09:46:24

系統中要製作plugin也可以使用AOP的特性開發

我要留言

立即登入留言