spring aop 的处理过程

1、代理对象的生成
   根据策略可以使用JDK代理, 或CGLIB
2、获取此方法上的通知链
3、加载通知链, 并配置的通知加载到通知链中, 这里的通知要要转化为MethodInterceptor
4、依次判断该方法是否匹配通知链的每个通知
   a、如果不匹配, 则执行下一下通知, 直接完毕后, 执行目标方法
   b、如果匹配,则执行通知的方法 
 
注意问题:
1、同一个类中, 在方法a中调用方法b,则不会再次被aop拦截, 解决方法, 将方法b抽到另一个类中, 或另一种方法:AopContext.cuuretProxy().b(), 或将本身有一个自己的引用, 当调用方法时, 使用本身的引用调用方法b
2、如果同一上方法被两个切面拦截, 先后顺序, 可以在切面类实现Ordered接口, 设置执行的优先级
参考:
 
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值