四、[源码]-AOP原理-创建AOP代理(InstantiationAwareBean Instantiation实例化区别BeanPostProcessor initialization 初始化)

org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessBeforeInstantiation(Class<?>, String)

特殊的后置处理器


InstantiationAwareBeanPostProcessor是在创建Bean实例之前先尝试用后置处理器返回对象的

 

每一个bean创建之前,调用postProcessBeforeInstantiation();

第一次调用

第二次调用

 第三次调用 自定义配置类

第四次调用

 判断当前bean是否在advisedBeans

 进入if判断,此处有AdivisedBean,判断当前bean是否在advisedBeans中(保存了所有需要增强bean)

 

 通过isAssignableFrom判断你是否为基础类型,是否需要跳过

 获取候选的增强器(切面里面的通知方法)【List<Advisor> candidateAdvisors】

创建目标类

 

 postProcessAfterInitialization 对象实例化初始化之后操作

 

 创建目标类代理对象

 

 

org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.createProxy(Class<?>, String, Object[], TargetSource)

 org.springframework.aop.framework.DefaultAopProxyFactory

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值