Spring bean 容器的生命周期
- Spring 容器根据配置中的 bean 定义中实例化 bean。
- Spring 使用依赖注入填充所有属性,如 bean 中所定义的配置。
- 如果 bean 实现BeanNameAware 接口,则工厂通过传递 bean 的 ID 来调用setBeanName()。
- 如果 bean 实现 BeanFactoryAware 接口,工厂通过传递自身的实例来调用 setBeanFactory()。
- 如果存在与 bean 关联的任何BeanPostProcessors,则调用postProcessBeforeInitialization() 方法。
- 如果为 bean 指定了 init 方法( <bean> 的 init-method 属性),那么将调 用它。
- 最后,如果存在与 bean 关联的任何 BeanPostProcessors,则将调用 postProcessAfterInitialization() 方法。
- 如果 bean 实现DisposableBean 接口,当 spring 容器关闭时,会调用 destory()。