Spring AOP

1.Spring AOP 代理类:ProxyFactory

待补充

2.代理何时被注入

  在bean初始化过程中,代理可以被AbstractAutoProxyCreator(实现了SmartInstantiationAwareBeanPostProcessor接口)的子类在2个地方被创建:

  1. postProcessBeforeInstantiation 实例化前,一般用于存在TargetSourceCreator时,由TargetSourceCreator创建TargetSource。创建代理后,直接返回代理Bean,不需要进行Bean的属性注入和后置方法处理。
  2. postProcessAfterInitialization Bean在属性注入和初始化后,生成代理Bean。Spring中大部分代理是通过该方式生成的。

3.postProcessAfterInitialization源码流程解析

1. 判断是否为earlyProxyReferences

2. wrapIfNecessary是否需要代理Bean

3. getAdvicesAndAdvisorsForBean 获取适用的Advisior

4. 查找所有advisor

5. 查找EligibleAdvisors

image.png

6. 总结

  1. 判断bean是否需要代理
  2. 查找所有advisior
  3. 查找Eligible advisor
  4. 调用proxyFactory创建代理

你可能感兴趣的:(Spring AOP)