Spring核心思想之 AOP:在自定義容器基礎上實現AOP功能

池塘里洗澡的鸭子發表於2024-03-13

  在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提前觸發呢?

相關文章