bean生命周期
spring容器帮助我们去管理对象,从对象的产生到销毁都由容器控制(实例化-初始化)
- 实例化bean对象,反射生成(createBeanInstance)
- bean对象创建后,属性是默认值,填充属性(populateBean)——循环依赖
- 设置容器属性
- 调用BeanPostProcessor中的前置处理,进行bean对象的扩展工作
- 调用invokeInitMethods方法完成初始化方法的调用(判断bean对象是否实现InitializingBean接口),如实现,则调用afterPropertiesSet方法来最后设置对象
- 调用BeanPostProcessor后置处理方法,完成对bean对象的后置处理工作(aop)
- 获取到完整对象,通过getBean方式进行对象获取和使用
- 对象使用完成后,容器关闭时,会销毁对象,调用DisposableBean接口的destroyMethod方法