spring--Bean的生命周期

Spring bean 的生命周期涉及多个阶段,从创建到销毁。下面是一个简化的生命周期描述:

  1. Bean 定义:

    • 首先,Spring 根据配置(XML、注解或 Java 配置)创建一个 bean 的定义。
  2. Bean 实例化:

    • Spring 容器使用构造器或工厂方法实例化 bean。
  3. 属性填充:

    • Spring 容器通过反射机制,将所有的属性值注入到 bean 中。
  4. BeanNameAware 和 BeanFactoryAware:

    • 如果 bean 实现了 BeanNameAware 接口,Spring 将 bean 的 ID 传递给 setBeanName() 方法。
    • 如果 bean 实现了 BeanFactoryAware 接口,Spring 将调用 setBeanFactory() 方法,将 BeanFactory 容器实例传入。
  5. BeanPostProcessor 前置处理:

    • Spring 容器调用 BeanPostProcessor 接口的 postProcessBeforeInitialization() 方法,可以在此对 bean 进行一些处理。
  6. InitializingBean 和自定义 init 方法:

    • 如果 bean 实现了 InitializingBean 接口,Spring 将调用其 afterPropertiesSet() 方法。
    • 如果 bean 在配置中定义了 init 方法,该方法也会被调用。
  7. BeanPostProcessor 后置处理:

    • Spring 容器调用 BeanPostProcessor 接口的 postProcessAfterInitialization() 方法,可以在此对 bean 进行一些处理。
  8. Bean 准备就绪:

    • 此时,bean 已经准备好可以被应用程序使用了。
  9. DisposableBean 和自定义 destroy 方法:

    • 当容器关闭时,如果 bean 实现了 DisposableBean 接口,Spring 将调用其 destroy() 方法。
    • 如果 bean 在配置中定义了 destroy 方法,该方法也会被调用。
  10. Bean 销毁:

    • 最后,bean 被销毁,不再可用。

在实际应用中,Spring bean 的生命周期可能会更加复杂,因为还可以通过监听器(如 ContextRefreshedEventContextClosedEvent 等)来执行特定的逻辑。

理解 Spring bean 的生命周期对于管理资源、处理初始化和清理工作以及优化应用性能等方面都是很重要的。开发者可以通过实现特定的接口或使用注解(如 @PostConstruct@PreDestroy)来介入生命周期的不同阶段,执行自定义的逻辑。

posted @   xylfjk  阅读(7)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
点击右上角即可分享
微信分享提示