参考 :《spring源码深度解析》

 

针对注解类的aop的实现 说明

 

public class AnnotationAwareAspectJAutoProxyCreator extends AspectJAwareAdvisorAutoProxyCreator {

 

AnnotationAwareAspectJAutoProxyCreator 是入口, 里面会实现上层的接口BeanPostProcessor,

在bean初始化之后,去获取所有的AspectJ注解,进一步获取各个bean对应的增强器advisor.举例如下图红框内容

spring aop针对注解类代理的的实现流程

获取对应的增强器的处理逻辑(有多种)

 

然后进一步 对那些需要增强处理的bean创建对应的代理对象(?)

 

DefaultAopProxyFactory 负责生成对应的代理对象 ,分为两种

spring aop针对注解类代理的的实现流程

注意:如果被代理bean是单例,生成代理对象也会是单例的,放到缓存里面

生成代理以cglibAopProxy代理为例

spring aop针对注解类代理的的实现流程

继续上面的函数 往下翻 如下图

spring aop针对注解类代理的的实现流程

 

添加了一些回调函数处理逻辑

spring aop针对注解类代理的的实现流程

下图把之前获取的增强器处理逻辑放到拦截器里面,回调时候出发,也就是在

被代理的方法调用时候触发增强逻辑,实现了代理功能

spring aop针对注解类代理的的实现流程

 

spring aop针对注解类代理的的实现流程

针对的具体的方法methond 把要处理的增强逻辑 放入chain

spring aop针对注解类代理的的实现流程

相关文章:

  • 2021-11-20
  • 2021-10-06
  • 2021-09-14
  • 2022-12-23
  • 2022-12-23
  • 2021-04-15
  • 2021-07-20
  • 2022-02-24
猜你喜欢
  • 2022-12-23
  • 2021-09-17
  • 2021-07-30
  • 2021-05-22
  • 2021-07-03
  • 2021-11-29
  • 2022-01-07
相关资源
相似解决方案