簡述
原文:
Spring 中 BeanFactory 的生命周期與源碼解析
Bean的生命周期
1.InstantiationAwareBeanPostProcessor調(diào)用postProcessBeforeInstantiation方法
2.實例化Bean對象,調(diào)用構(gòu)造器
3.InstantiationAwareBeanPostProcessor調(diào)用postProcessAfterInstantiation方法
4.InstantiationAwareBeanPostProcessor調(diào)用postProcessPropertyValues方法
5.設(shè)置屬性
//若實現(xiàn)了Aware接口,則調(diào)用
6.設(shè)置Bean的BeanNameAware接口,調(diào)用BeanNameAware.setBeanName()
7.設(shè)置Bean的BeanFactoryAware接口,調(diào)用BeanFactoryAware.setBeanFactory()
8.調(diào)用BeanPostProcessor的postProcessBeforeInitialization方法
//調(diào)用初始化方法
9.InitializingBean接口,調(diào)用InitializingBean.afterPropertiesSet()
10.調(diào)用<bean>的init-method屬性指定的初始化方法
11.調(diào)用BeanPostProcessor的postProcessAfterInitialization方法
//容器初始化成功
12.使用Bean
//關(guān)閉容器,調(diào)用銷毀方法
13.DisposableBean接口,調(diào)用DisposableBean.destory()
14.調(diào)用<bean>的destroy-method屬性指定的初始化方法