在Spring核心思想之 AOP:基礎概念及註解式AOP初體驗中對AOP的基本概念及使用有了初步的瞭解。本文仿Spring自定義後置處理器、註解等,在Spring的核心思想之IOC:仿Spring自定義一個實現IOC的容器的基礎上實現自定義的AOP功能。
aop相關目錄:
在IOC容器的自定義實現中,populateBean()方法後面執行了後置處理器,如下:
該方法前部分是對註解的反射,重點是後面部分獲得代理物件。
實際操作的是createProxy(lfAdvisedSupport).getProxy()方法。該方法的引數為lfAdvisedSupport ,實際這個就是增強通知的代理物件。觀察其屬性為目標物件例項和class。
在這個UML圖中明確展現了,對切點的解析操作以及增強通知相關的方法。
接下來就是根據是否有介面分別使用Jdk代理和Cglib代理。
當然,Spring中AOP比這個複雜的多,本文只是大致描述其基本思想。在Spring的核心思想之DI:詳解Spring DI迴圈依賴實現機制末尾提到三級快取與AOP相關,這裡的AOP在populateBean()方法之後,Spring框架中實際亦如此。那麼在迴圈DI中AOP提前觸發呢?