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

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

 

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

 

public class AnnotationAwareAspectJAutoProxyCreator extends AspectJAwareAdvisorAutoProxyCreator {

 

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

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

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

 

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

 

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

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

生成代理以cglibAopProxy代理为例

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

 

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

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

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

 

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值