一.默认情况下Bean的生命周期可以分为五步
-
.Bean的实例化,通过构造器或者工厂的方式创建Bean对象
-
属性注入,给Bean赋值
-
初始化Bean,调用Bean的Init方法
-
调用Bean
-
摧毁Bean,IOC关闭时,调用Bean的destory()方法,摧毁Bean对象
二.若Bean加入了”Bean后处理器“,实现了BeanPostProcessor接口Bean的生命周期可以划分为七步
-
在初始化之前,重写BeanPostProcessorBefoerInitlization方法,Before后处理器before执行,可以在这个方法里对Bean进行一些自定义的初始化操作
-
在初始化之后,重写BeanPostProcessorAfterInitlization方法,Before后处理器after执行,可以在初始化之后自定一些Bean的内容
三.若还要细分的话可以把Bean的生命周期划分为十步
-
在Bean后处理器before方法执行前,检查Bean是否实现了Aware的相关接口(Aware相关接口:BeanNameAware,BeanClassLoaderAware,BeanFactoryBeanAware),并设置相关依赖
-
当Bean实现了BeanNameAware,Spring会将Bean的名字传给Bean
-
当Bean实现了BeanClassLoaaderAware,Spring会将加载该Bean的加载器传递给Bean
-
当Bean实现了BeanFactoryBeanAware,Spring会将Bean工厂对象传递给Bean
-
在初始化Bean之前,检查Bean是否实现了InitializingBean接口,并调用接口方法
-
在destory()方法调用之前,检查Bean是否实现DisposableBean接口,并调用接口方法