💡
原文中文,约16700字,阅读约需40分钟。
📝
内容提要
介绍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方法用于创建代理对象。
➡️