在 Spring 中,Bean 生命周期分为以下几个阶段:
实例化:当 Spring 容器启动时,根据配置文件或注解信息,实例化 Bean 对象。
BeanPostProcessor 执行:在实例化 Bean 对象后,Spring 会在 Bean 对象初始化之前和之后调用和执行所有的 BeanPostProcessor。
属性赋值:在实例化 Bean 对象后,并且 BeanPostProcessor 执行完毕后,Spring 会根据配置文件或注解信息,自动将 Bean 对象依赖的属性注入进去。
初始化:在 Bean 对象属性注入完成后,Spring 会调用 Bean 的初始化方法。Spring 容器提供了两种方式来配置 Bean 的初始化方法,一种是在 Bean 配置文件中通过 init-method 属性来指定初始化方法,另一种方式是为 Bean 实现 InitializingBean 接口,并实现其中的 afterPropertiesSet() 方法。通过这两种方式,Spring 容器会在 Bean 实例化后,属性注入后,执行 Bean 的初始化方法。
使用:初始化后,Bean 对象会被放入容器中,供应用程序使用,直到应用程序退出。
销毁:当应用程序退出时,Spring 容器会调用 Bean 的销毁方法。Spring 容器提供了两种方式来配置 Bean 的销毁方法,一种是在 Bean 配置文件中通过 destroy-method 属性来指定销毁方法,另一种方式是为 Bean 实现 DisposableBean 接口,并实现其中的 destroy() 方法。通过这两种方式,Spring 容器会在应用程序退出前,对 Bean 对象进行销毁。