贯穿bean生命周期的9次BeanPostProcess的执行

1、InstantiationAwareBeanPostProcessor,如果此处返回了bean实例,将直接返回,不会再走下面的doCreateBean流程

 

 

 

2、SmartInstantiationAwareBeanPostProcessor.determineCandidateConstructors(),决定用哪个构造方法实例化

 

 

 

 

--------------------------------------------------------------------实例化------------------------------------------------------------------------

3、MergedBeanDefinitionPostProcessor.postProcessMergedBeanDefinition(),解析并缓存注解信息

 

 

 

4、InstantiationAwareBeanPostProcessor,是否要进行属性注入

 

 

 --------------------------------------------------------------------属性注入------------------------------------------------------------------------

5、SmartInstantiationAwareBeanPostProcessor,用于循环依赖时,提前暴露动态代理对象

 

 

 6、InstantiationAwareBeanPostProcessor.postProcessPropertyValues(),解析@Autowired和@Resource注解

7、依次回调bean后置处理器的postProcessBeforeInitialization方法

 

 

 

--------------------------------------------------------------------初始化------------------------------------------------------------------------

8、BeanPostProcess的postProcessAfterInitialization方法,aop创建动态代理的地方

9、DestructionAwareBeanPostProcessor,注册销毁方法

posted @ 2022-03-21 12:57  区区致命伤  阅读(156)  评论(0)    收藏  举报