介绍
Spring中Bean的生命周期,大概可以分为四个阶段和多个扩展点:
- 实例化
- 属性注入
- 初始化
- 销毁
生命周期
生命周期的的主要过程都在doCreate()方法中,在其中顺序的调用实例化,属性赋值,初始化方法。
- createBeanInstance() -> 实例化
- populateBean() -> 属性赋值
- initializeBean() -> 初始化
销毁则在容器关闭时调用,详见ConfigurableApplicationContext#close()
。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| protected Object doCreateBean(final String beanName, final RootBeanDefinition mbd, final @Nullable Object[] args) throws BeanCreationException {
BeanWrapper instanceWrapper = null; if (instanceWrapper == null) { instanceWrapper = createBeanInstance(beanName, mbd, args); }
Object exposedObject = bean; try { populateBean(beanName, mbd, instanceWrapper); exposedObject = initializeBean(beanName, exposedObject, mbd); } }
|
参考文献 & 鸣谢