在Spring容器初始化的时候,Spring帮我们的Bean做了很多的工作,下图看看Bean从初始化到销毁的生命周期:
具体的流程步骤说明:
- Spring实例化Bean
- 利用依赖注入来配置Bean中的所有属性值
- 如果Bean实现了BeanNameAware接口,则Spring调用Bean的setBeanName()方法传入当前Bean的ID值
- 如果Bean实现了BeanFactoryAware接口,则Spring调用setBeanFactory()方法传入当前工厂实例的引用
- 如果Bean实现了ApplicationContextAware接口,则Spring调用setApplicationContext()方法传入当前ApplicationContext实例的引用
- 如果Bean实现了BeanPostProcessor接口,则Spring会调用postProcessBeforeInitialization()方法
- 如果Bean实现了InitializingBean接口,则Spring会调用afterPropertiesSet()方法
- 如果在配置文件中用过init-method属性制定了初始化方法,则调用该初始化方法
- 如果Bean实现了BeanPostProcessor接口,则Spring会调用postProcessAfterInitialization()方法
- 到此为止,Bean就可以被使用了,他将一直存在于Spring容器中直到被销毁
- 如果Bean实现了DisposableBean接口,则Spring会调用destory()方法
- 如果在配置文件中用过destory-method属性指定了销毁Bean的方法,则调用该方法
(•̀ᴗ•́)و ̑̑