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