Bean的生命周期

1. Instantiate 实例化一个Bean

2. Populate properties 设置Bean的属性值

3*. 调用BeanNameAware的setBeanName()

4*. BeanFactoryAware的setBeanFactory()

5*. 调用BeanPostProcessors的ProcessBeforeInitialization()

6*. 调用InitializingBean的afterPropertiesSet()

7. 调用调用Bean定义的init-method

8*. BeanPostProcessors的ProcessaAfterInitialization()

[上面是Bean的创建阶段]

[Bean的正常使用阶段]

[下面是Bean的销毁阶段,例如容器销毁的时候]

9. 调用DisposableBean的destroy()

10. 调用Bean中自定义的destroy-method

其中,Bean自身的方法包括:本身正常使用的方法,通过或者@Bean配置的init-method和destroy-method方法。在一般的开发过程中,我们只需要关心Bean自身的方法即可。剩余的都是Bean级别的生命周期的接口方法,包括BeanNameAware、BeanFactoryAware、InitializingBean和DiposableBean这些接口的方法,只有Bean实现了这些接口,才会在生命周期中执行接口的相关方法。


Bean的生命周期_第1张图片

同时感谢以下博文,写作时作为参考借鉴

Spring IoC的一点总结

长话短说Spring(1)之IoC控制反转

你可能感兴趣的:(Bean的生命周期)