在 Spring 容器中,Bean 的生命周期包括以下几个阶段:
- 实例化 Bean:当 Spring 容器启动时,它会根据配置文件或注解定义,实例化所有需要创建的 Bean。
- 设置对象属性:在实例化 Bean 后,Spring 容器将会通过反射为 Bean 的属性设置值,这些属性值可以来自配置文件或注解定义。
- 调用 Bean 的初始化方法:如果 Bean 实现了 InitializingBean 接口或在配置文件中使用 init-method 属性指定了初始化方法,Spring 容器将会在 Bean 属性设置完成后调用该方法进行初始化。
- Bean 已经准备就绪:此时 Bean 已经可以被应用程序使用了。
- 调用 Bean 的销毁方法:如果 Bean 实现了 DisposableBean 接口或在配置文件中使用 destroy-method 属性指定了销毁方法,Spring 容器在关闭时将会调用该方法进行销毁。
- Bean 被销毁:此时 Bean 的生命周期结束。
需要注意的是,Bean 的生命周期并不只有以上几个阶段,Bean 的实例化和属性设置过程也可以被 AOP 拦截并进行处理。同时,Spring 还提供了 BeanPostProcessor 接口,允许应用程序在 Bean 实例化、属性设置和初始化方法执行等阶段进行自定义处理。