内容提要
介绍Spring AOP中代理对象的创建过程,包括Bean的生命周期分为实例化、属性赋值、初始化和销毁四个阶段。在初始化阶段,通过后置处理器AbstractAutoProxyCreator的postProcessAfterInitialization方法进行AOP处理,根据切点过滤出能够应用到当前Bean的切面,并通过createProxy方法创建代理对象。
关键要点
-
介绍Spring AOP中代理对象的创建过程。
-
Bean的生命周期分为实例化、属性赋值、初始化和销毁四个阶段。
-
在初始化阶段,通过后置处理器AbstractAutoProxyCreator的postProcessAfterInitialization方法进行AOP处理。
-
根据切点过滤出能够应用到当前Bean的切面。
-
通过createProxy方法创建代理对象。
-
实例化是通过反射创建Bean的实例。
-
属性赋值是给创建的Bean的各个属性赋值。
-
初始化阶段应用各种后置处理器。
-
销毁阶段是Bean的生命周期的最后一步。
-
AOP代理对象的创建是在初始化过程中完成的。
-
AbstractAutowireCapableBeanFactory#doCreateBean方法用于创建Bean。
-
initializeBean方法执行各种后置处理器。
-
applyBeanPostProcessorsAfterInitialization方法遍历各种BeanPostProcessor并执行其后置方法。
-
AbstractAutoProxyCreator的postProcessAfterInitialization方法进行AOP处理。
-
wrapIfNecessary方法用于创建AOP代理对象。
-
getAdvicesAndAdvisorsForBean方法查找与当前类匹配的切面。
-
findEligibleAdvisors方法获取所有候选的Advisor。
-
findAdvisorsThatCanApply方法过滤出能够应用到当前Bean的切面。
-
createProxy方法用于创建代理对象。