美文网首页
Bean 的生命周期

Bean 的生命周期

作者: sickle4j | 来源:发表于2023-05-10 17:40 被阅读0次

    Bean 的生命周期

    在 Spring 框架中,Bean 是指被 Spring 容器管理的对象。Bean 的生命周期指 Bean 被创建的过程,以及在容器关闭时 Bean 被销毁的过程。

    Bean 的生命周期包括以下阶段:

    1. 实例化

    当 Spring 容器接收到一个 Bean 的定义时,它会根据 Bean 的定义创建一个实例。这个实例化可以通过构造函数或者工厂方法来完成。

    2. 属性赋值

    当 Bean 实例被创建后,Spring 容器会根据配置文件或注解,为 Bean 的属性进行赋值。这些属性可以是基本数据类型、对象引用或集合等类型。

    3. 初始化

    初始化是指 Bean 实例创建后完成所有准备工作,使得 Bean 可以被使用的过程。这个过程可以通过实现 InitializingBean 接口或者在配置文件中定义 init-method 方法来完成。

    4. 使用

    在初始化完成后,Bean 可以被使用了。Bean 就是在这个阶段被注入到其他 Bean 中,或者被容器提供给其他组件使用的。

    5. 销毁

    当容器关闭时,Bean 被销毁。这个过程可以通过实现 DisposableBean 接口或者在配置文件中定义 destroy-method 方法来完成。

    总结

    Bean 的生命周期可以通过配置文件或注解来控制,开发人员可以根据需要自由设置 Bean 的创建、初始化、使用和销毁等阶段的处理方式,以满足业务需要。

    • Bean 容器找到配置文件中 Spring Bean 的定义。
    • Bean 容器利用 Java Reflection API 创建一个 Bean 的实例。
    • 如果涉及到一些属性值 利用 set()方法设置一些属性值。
    • 如果 Bean 实现了 BeanNameAware 接口,调用 setBeanName()方法,传入 Bean 的名字。
    • 如果 Bean 实现了 BeanClassLoaderAware 接口,调用 setBeanClassLoader()方法,传入 ClassLoader对象的实例。
    • 如果 Bean 实现了 BeanFactoryAware 接口,调用 setBeanFactory()方法,传入 BeanFactory对象的实例。
    • 与上面的类似,如果实现了其他 .Aware接口,就调用相应的方法。
    • 如果有和加载这个 Bean 的 Spring 容器相关的 BeanPostProcessor 对象,执行postProcessBeforeInitialization() 方法
    • 如果 Bean 实现了InitializingBean接口,执行afterPropertiesSet()方法。
    • 如果 Bean 在配置文件中的定义包含 init-method 属性,执行指定的方法。
    • 如果有和加载这个 Bean 的 Spring 容器相关的 BeanPostProcessor 对象,执行postProcessAfterInitialization() 方法
    • 当要销毁 Bean 的时候,如果 Bean 实现了 DisposableBean 接口,执行 destroy() 方法。
    • 当要销毁 Bean 的时候,如果 Bean 在配置文件中的定义包含 destroy-method 属性,执行指定的方法。

    著作权归Guide所有 原文链接:https://javaguide.cn/system-design/framework/spring/spring-knowledge-and-questions-summary.html#bean-的生命周期了解么

    image.png

    相关文章

      网友评论

          本文标题:Bean 的生命周期

          本文链接:https://www.haomeiwen.com/subject/dfjjsdtx.html