【305、Bean 的生命周期了解么?】

63 阅读1分钟

在 Spring 框架中,Bean 的生命周期可以分为以下 8 个阶段:

  1. 实例化:Spring 容器使用 Bean 的构造函数或工厂方法创建 Bean 的实例。
  2. 属性赋值:Spring 容器将 Bean 的属性值或依赖注入到 Bean 实例中。
  3. BeanNameAware:Spring 容器将 Bean 的名称传递给实现了 BeanNameAware 接口的 Bean。
  4. BeanFactoryAware:Spring 容器将 BeanFactory 实例传递给实现了 BeanFactoryAware 接口的 Bean。
  5. ApplicationContextAware:Spring 容器将 ApplicationContext 实例传递给实现了 ApplicationContextAware 接口的 Bean。
  6. 初始化:实现了 InitializingBean 接口的 Bean 会在 Bean 初始化之前调用 afterPropertiesSet() 方法;同时,可以使用 @PostConstruct 注解标注的方法或者 init-method 属性指定的方法来完成 Bean 的初始化。
  7. 销毁:实现了 DisposableBean 接口的 Bean 会在 Bean 销毁之前调用 destroy() 方法;同时,可以使用 @PreDestroy 注解标注的方法或者 destroy-method 属性指定的方法来完成 Bean 的销毁。
  8. 容器移除:如果 Bean 是 singleton 作用域,则 Spring 容器在关闭时将销毁该 Bean。

需要注意的是,以上生命周期的阶段不是一定会执行的,例如如果 Bean 没有实现对应的接口或者没有指定对应的注解或属性,那么该阶段对应的方法或属性也不会被执行。

了解 Bean 的生命周期对于理解 Spring 框架的工作原理和调试应用程序非常有帮助,也可以根据自己的需要来在 Bean 的生命周期不同阶段执行相应的操作。同时,在使用 Spring 框架时,也需要注意避免一些生命周期相关的问题,例如循环依赖、内存泄漏等问题。