1.概念:Spring Bean的生命周期是从Bean实例化之后,即通过反射创建出对象之后,到Bean成为一个完整对象,最终存储到单例池中,这个过程被称为Spring Bean的生命周期。
2.简单来说,一个Bean的生命周期分为以下几步:
①实例化: Spring框架会取出BeanDefinition的信息进行判断当前Bean的范围是否是singleton的是否不是延迟加载的,是否不是FactoryBean等,最终将一个普通的singleton的Bean通过反射进行实例化。
②初始化:Bean创建之后还仅仅是个"半成品",还需要对Bean实例的属性进行填充、执行一些Aware 接口方法、执行BeanPostProcessor方法、执行InitializingBean接口的初始化方法、执行自定义初始化init方法等。该阶段是Spring最具技术含量和复杂度的阶段;
③销毁:经过初始化阶段,Bean就成为了一个完整的Spring Bean,被存储到单例池singletonObiects中去了,即完成了Spring Bean的整个生命周期。
3.Bean的初始化阶段的步骤非常的复杂,下面就详细介绍以下初始化阶段的步骤:
①Bean实例的属性填充
②Aware接口注入
③BeanPostProcessor的befor()方法回调
④lnitializingBean接口的初始化方法回调
⑤自定义初始化方法init回调
⑥BeanPostProcessor的after0方法回调
⑦然后将创建好的Bean实例对象,存储到singletonObjects的Map集合中