AOP原理——创建AOP代理

一、创建AOP代理

AnnotationAwareAspectJAutoProxyCreatorInstantiationAwareBeanPostProcessor类型的后置处理器,它会在每一个bean创建之前,调用postProcessBeforeInstantiation()方法尝试返回一个代理对象。

以自定义的MathCalculatorLogAspects这两个Bean为例

轮到mathCalculator这个bean执行postProcessBeforeInstantiation()方法
在这里插入图片描述
执行postProcessBeforeInstantiation()方法结束之后,就会去创建mathCalculator这个bean
在这里插入图片描述
创建完mathCalculator之后会调用postProcessAfterInitialization()方法
在这里插入图片描述
wrapIfNecessary()方法最终给容器中返回当前组件使用cglib增强了的代理对象
在这里插入图片描述
createProxy()方法会创建出代理对象
在这里插入图片描述
getProxy()方法进一步调用createAopProxy().getProxy(classLoader),创建出AOP代理工厂,进而得到AOP代理对象
在这里插入图片描述
得到AOP代理工厂
在这里插入图片描述
再去创建AOP代理对象
在这里插入图片描述

以后容器中获取到的就是这个组件的代理对象,执行目标方法的时候,比如MathCalculatordiv()除法时,代理对象就会执行通知方法的流程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值