SpringFramework — Bean 初始化部分的生命周期

小龙 515 2022-05-31

如何理解 bean 初始化部分的生命周期

bean 对象创建完成只会,会进行属性赋值、组件依赖注入,以及初始化阶段的方法回调。在 populateBean 属性赋值阶段,会事先收集好 bean 中标注了依赖注入注解的(@Autowired@Value@Resource@Inject)bean,之后在借助后置处理器,回调 postProcessorProperties 方法实现依赖注入。

属性赋值和依赖注入之后,会回调执行 bean 的初始化方法,以及后置处理器的逻辑:首先会执行 Aware 相关的回调注入,之后执行后置处理器的前置回调,在后置处理器的前置方法中,会回调 bean 中标注了 @PostConstruct 注解的方法,所有的后置处理器前置方法回调后,会执行 InitializingBeanafterPropertiesSet 方法,随后是 init-method 指定的方法,等这些 bean 的初始化方法都回调完毕后,最后执行后置处理器的后置回调。

全部的 bean 初始化结束后,ApplicationContextstart 方法触发时,会触发实现了 Lifecycle 接口的 bean 执行 start 方法


# IOC