Spring Bean 生命周期涵盖从创建到销毁的过程,主要步骤如下:
- 实例化:Spring 容器依据配置创建 Bean 实例,一般通过反射调用构造函数。
- 属性注入:按配置为 Bean 的属性赋值,可通过 XML 标签或注解实现。
- Aware 接口回调 :若实现
BeanNameAware
、BeanFactoryAware
、ApplicationContextAware
接口,Spring 会依次调用对应方法,让 Bean 获取自身名称、容器引用和应用上下文。 - BeanPostProcessor 处理 :初始化前后,Spring 分别调用
BeanPostProcessor
的postProcessBeforeInitialization
和postProcessAfterInitialization
方法,可用于额外处理。 - 初始化 :实现
InitializingBean
接口,Spring 会调用afterPropertiesSet
方法;也可指定自定义初始化方法。 - 使用 Bean:初始化完成后,Bean 可被应用程序使用。
- 销毁 :容器关闭时,若实现
DisposableBean
接口,Spring 调用destroy
方法;也可指定自定义销毁方法。
演示:
单例对象的生命周期:
init初始化时间:容器建立,对象初始化
存活时间:只要容器在,对象就在
销毁时间:容器销毁,对象销毁



多例对象的生命周期:
初始化时间:跟随容器建立,每次通过容器获取时会建立一次
存活时间:对象只要在使用时都认为是存活的
销毁时间:对象长时间不适用,且没有被引用的情况下,由java的垃圾回收机制自动处理。

