如果想要在 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 的功能給載入進來。
載入好 Spring AOP 的功能之後,接下來我們就可以在 Spring Boot 中使用 Spring AOP 專屬的註解,去實作一個 AOP 的切面出來了!
如果想要使用 Spring AOP 去創造一個新的切面出來的話,我們就只要在 class 上面,去加上一個 @Aspect
的註解,這樣子就可以成功創建一個切面出來了。
譬如說我們可以先創建一個新的 class 叫做 MyAspect,然後在上面加上 @Aspect
,這樣就可以將 MyAspect 變成是一個切面了。
不過在使用 @Aspect
去創建新切面時,有一點一定要特別注意,就是「只有 Bean 才可以變成一個切面」。
所以換句話說的話,在使用 @Aspect
去創建一個新的切面時,同時也必須要使用 @Component
,將這個 class 變成是一個 Bean,這樣子 @Aspect
的切面設定才會真的生效!!如果單純只有在 class 上面加上 @Aspect
的話,是完全沒有任何效果的!
所以大家在實作時一定要記得,在創建切面時,「@Component
和 @Aspect
要一起使用」 就對了。
創建好切面 MyAspect 這個切面 class 之後,我們就可以在這個 class 裡面,去撰寫切面的方法了。
舉例來說,我們可以在 MyAspect 裡面,先寫上一個 before()
方法,然後在這個 before()
方法裡面,輸出一行「I'm before」的訊息到 console 上。
接著,只要我們在這個 before()
方法上面,去加上一個 @Before
註解,並且在後面的小括號中,去指定想要的切入點,這樣子就可以在這個切入點的方法 「執行前」,去執行這個 MyAspect 中的 before()
方法了。