上篇文章说了spring的aop,在启动类加一个启动注解,注解点进源码可以看到注册了bean定义的后置处理器。每个切入点都会生成一个adviosr,他们会排序好依次注册。
他的顺序是before、after、afterRturning、afterThrowing
原创 SpringAOP(1)-spring源码详解(六)https://blog.csdn.net/ke1ying/article/details/127974300
这里解析到了环绕处理器,放入到aspectFactoryCache里面。
前面说的都是beforeInstantiation里面做的事,
后面开始从postProcessAfterInitialization里处理。
先会判断下之前循环依赖的动态代理 如果是现在的bean,就不在创建,并且移除。
不是则开始创建动态代理wrapIfNecessary。
前面放入缓存,就是为了在初始化后置处理器这里调用缓存。
在createProxy动态代理的时候,如果没有设置proxyTargetClass就会使用cglib代理,
否则使用jdk动态代理。