spring AOP Capability and goals

Spring AOP提供了一個簡單的AOP實現,以使用代理模式和裝飾器模式實現橫切關注點。它不被認爲是一個完整的AOP解決方案,Spring能夠應用於由Spring容器管理的bean 。html

1、 AOP Capability 

Spring AOP是用純Java實現的。不須要特殊的編譯過程。Spring AOP不須要控制類加載器層次結構,所以適合在servlet容器或應用程序服務器中使用。spring

Spring AOP目前僅支持方法執行鏈接點(建議在Spring bean上執行方法)。雖然能夠在不破壞核心Spring AOP API的狀況下添加對字段攔截的支持,但未實現字段攔截。若是您須要建議字段訪問和更新鏈接點,請考慮使用AspectJ等語言。服務器

Spring AOP的AOP方法與大多數其餘AOP框架的方法不一樣。目的不是提供最完整的AOP實現(儘管Spring AOP很是強大)。相反,目標是在AOP實現和Spring IoC之間提供緊密集成,以幫助解決企業應用程序中的常見問題。架構

所以,例如,Spring Framework的AOP功能一般與Spring IoC容器一塊兒使用。經過使用普通bean定義語法來配置方面(儘管這容許強大的「自動代理」功能)。這是與其餘AOP實現的重要區別。使用Spring AOP沒法輕鬆或高效地完成某些操做,例如建議很是細粒度的對象(一般是域對象)。在這種狀況下,AspectJ是最佳選擇。可是,咱們的經驗是Spring AOP爲適合AOP的企業Java應用程序中的大多數問題提供了出色的解決方案。框架

2、AOP goals

Spring AOP從未努力與AspectJ競爭,以提供全面的AOP解決方案。咱們相信,基於代理的框架(如Spring AOP)和完整的框架(如AspectJ)都頗有價值,並且它們是互補的,而不是競爭。spa

Spring將Spring AOP和IoC與AspectJ無縫集成,以在一致的基於Spring的應用程序架構中實現AOP的全部使用。此集成不會影響Spring AOP API或AOP Alliance API。Spring AOP仍然向後兼容。代理

官方文檔:https://docs.spring.io/spring/docs/5.1.6.RELEASE/spring-framework-reference/core.html#aop-introduction-spring-defnhtm

相關文章
相關標籤/搜索