Spring核心思想之 AOP:在自定义容器基础上实现AOP功能

  在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提前触发了?

 

posted on 2024-03-13 12:51  池塘里洗澡的鸭子  阅读(9)  评论(0编辑  收藏  举报