springBean的生命周期分为4个阶段
1、实例化Bean
客户向容器请求一个未初始化的Bean,初始化bean的时候需要注入另一个尚未初始化的依赖时,容器会调用doCreateBean()方法进行实例化,实际上就是通过反射的方式创建出一个bean对象
2、Bean属性填充
bean实例创建之后对bean对象的属性进行填充,就是注入这个bean依赖的其他bean对象
3、初始化Bean
(1)执行aware接口的方法
(2)执行BeanPostProcessor的前置处理方法postProcessorBeforeInitialization(),对Bean进行一些自定义的前置处理
(3)判断bean是否实现了InitializationBean接口,实现了将会执行InitializationBean的afterPropertiesSet()初始化方法
(4)执行用户自定义的初始化方法,init-method等
(5)执行BeanPostProcessor的后置处理方法postProcessorAfterinitalization()
4、销毁Bean
首先判断Bean是否实现了DestructionAwareBeanPostProcessor接口,如果实现了,则会执行DestructionAwareBeanPostProcessor后置处理器的销毁回调方法
其次会判断Bean是否实现了DisposableBean接口,如果实现了将会调用其实现的destroy()方法
最后判断这个Bean是否配置了dlestroy-method等自定义的销毁方法,如果有的话,则会自动调用其配置的销毁方法;