快速复习
AOP的核心(动态代理的开发)
代理设计模式:通过代理类 为原始对象(目标)增加额外功能
AOP动态代理的两种方式
AOP代理的创建过程
1.BeanPostProcessor 最终完成JDK或CGLIB的代理创建
@EnableAspectJAutoProxy(proxyTargeClass = true)
这个注解嵌套@Import注册AnnotationAwareAspectJAutoProxyCreator(这是创建代理的BeanPostProcessor)
2.创建代理的BeanPostProcessor在初始化后执行,获取创建代理所需要的所有的切面和原始对象放入代理工厂,通过调用代理工厂的getProxy进行代理的创建
AOP源码
postProcessAfterInitialization方法
这个是在对象初始化后调用的beanPostProcessor(AnnotationAwareAspectJAutoProxyCreator)
warpIfNecessary
createProxy
getProxy
在调用原始方法时,调用代理对象的invoke方法
invoke