Spring Bean的生命周期是从 Bean 实例化之后,即通过反射创建出对象之后,到Bean成为一个完整对 象,最终存
Spring Bean的生命周期:
1.Bean的实例化阶段:Spring框架会取出BeanDefinition的信息进行判断当前Bean的范围是否是 singleton的, 是否不是延迟加载的,是否不是FactoryBean等,最终将一个普通的singleton的 Bean通过反射进行实例化;
2.Bean的初始化阶段:Bean创建之后还仅仅是个"半成品",还需要对Bean实例的属性进行填充、执 行一些Aware 接口方法、执行BeanPostProcessor方法、执行InitializingBean接口的初始化方 法、执行自定义初始化init方法等。该阶段是Spring最具技术含量和复杂度的阶段;
3.Bean的完成阶段:经过初始化阶段,Bean就成为了一个完整的Spring Bean,被存储到单例池 singletonObjects中去了,即完成了Spring Bean的整个生命周期。
Spring Bean的初始化过程涉及如下几个过程:
Bean实例的属性填充
Aware接口属性注入
BeanPostProcessor的before()方法回调
InitializingBean接口的初始化方法回调
自定义初始化方法init回调
BeanPostProcessor的after()方法回调