bean在spring Bean工厂中的生命周期
步骤 | 说明 |
1.实例化 | Spring实例化bean |
2.设置属性 | Spring注入bean属性 |
3.设置bean名称 | 如果bean实现了BeanFactoryAware接口,spring传递bean工厂给setBeanFactory() |
4.预处理(在初始化之前) | 如果有多个BeanPostProcessors,Spring将调用postProcessBeforeInitialization()方法 |
5.初始化bean | 如果bean实现了InitializingBean,其afterPropertiesSet方法将被调用,如果Bean声明了自定义的初始化方法,那么将调用指定的初始化方法 |
6.预处理(在初始化之后) | 如果有多个BeanPostProcessors,postPropertiesSet()方法将被调用 |
7.bean已准备好 | 此时的bean已经准备好,可以使用,并且将一直保留在Bean工厂中,直到不再需要它 |
8.销毁bean | 如果bean实现了DisableBean,将调用destroy()方法;如果Bean有自定义的销毁方法,将调用指定的方法 |
bean在spring上下文中的生命周期与在bean工厂中的生命周期唯一的不同是bean实现了ApplicationContextAware接口,setApplicationContext()方法会被调用。