spring-boot-starter-aop


AOP(Aspect Oriented Programming),在經歷了代碼生成、動態代理、字節碼增強甚至靜態編譯等不同時代的洗禮之后,Java 平台上的 AOP 方案基本上已經以 SpringAOP 結合 AspectJ 的方式穩固下來。

現在 Spring 框架提供的 AOP 方案倡導了一種各取所長的方案,即使用 SpringAOP 的面向對象的方式來編寫和組織織入邏輯,並使用 AspectJ 的 Pointcut 描述語言配合 Annotation 來標注和指明織入點(Jointpoint)。

原則上來說,我們只要引入 Spring 框架中 AOP 的相應依賴就可以直接使用 Spring 的 AOP 支持了,不過,為了進一步為大家使用 SpringAOP 提供便利,SpringBoot 還是“不厭其煩”地為我們提供了一個 spring-boot-starter-aop 自動配置模塊。

spring-boot-starter-aop 自動配置行為由兩部分內容組成:

位於 spring-boot-autoconfigure的org.springframework.boot.autoconfigure.aop.AopAutoConfiguration 提供 @Configuration 配置類和相應的配置項。
spring-boot-starter-aop 模塊自身提供了針對 spring-aop、aspectjrt 和 aspectjweaver 的依賴。
一般情況下,只要項目依賴中加入了 spring-boot-starter-aop,其實就會自動觸發 AOP 的關聯行為,包括構建相應的 AutoProxyCreator,將橫切關注點織入(Weave)相應的目標對象等,不過 AopAutoConfiguration 依然為我們提供了兩個配置項,用來有限地干預 AOP 相關配置:

spring.aop.auto=true
spring.aop.proxy-target-class=false
對我們來說,這兩個配置項的最大意義在於:允許我們投反對票,比如可以選擇關閉自動的 aop 配置(spring.aop.auto=false),或者啟用針對 class 而不是 interface 級別的 aop 代理(aop proxy)。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM