• Spring Bean的生命周期


    前言

       在Spring中,从Spring IOC容器中取得的bean实例为单例,这个bean的生命周期就是容器管理的,一般担当管理者角色的是BeanFactory或者ApplicationContext。认识Bean的生命周期活动,对于更好的理解它有很大的帮助。

    下面以BeanFactory为例,说明一个bean的生命周期

     

    • 1. Bean的建立

                容器寻找Bean的定义信息并将其实例化

    • 2.属性注入

               使用依赖注入,Spring按照Bean定义信息配置Bean所有属性

    • 3.BeanNameAware的setBeanName()

        如果Bean类实现BeanNameAware接口,工厂调用Bean的setBeanName()方法传递Bean的id。

    • 4.BeanFactoryAware的setBeanFactory()

               如果Bean类实现BeanFactoryAware接口,工厂调用setBeanFactory()方法传入工厂自身

    • 5.BeanPostProcessor的postProcessBeforeIntialization()

       如果bean和BeanPostProcessor关联,那么其postProcessBeforeIntialization()方法将被调用

    • 6.InitializingBean的afterPropertiesSet()

        如果Bean类已实现InitializingBean接口,则执行他的afterProPertiesSet()方法

    • 7.Bean定义文件中定义init-method

        可以在Bean定义文件中使用"init-method"属性设定方法名称

    <bean id="demoBean" class="com.yangsq.bean.DemoBean" init-method="initMethod">
      .......
     </bean>

    • 8.BeanPostProcessor的postProcessAfterInitialization()

              如果有任何的BeanPostProcessors实例与Bean实例关联,则执行BeanPostProcessors实例的ProcessaAfterInitialization()方法

    • 9.  此时,Bean已经可以被应用系统使用了
    • 10. DisposableBean的destroy()

              在容器关闭时,如果Bean类实现了org.springframework.beans.factory.DisposableBean接口,则执行它的destroy()方法。

    • 11 Bean定义文件中定义destroy-method

                在容器关闭时,可以在Bean定义文件中使用“destory-method”定义的方法

              < bean id="demoBean" class="com.yangsq.bean.DemoBean" destory-method="destroyMethod">
                 .......
              </bean>

       

  • 相关阅读:
    我的专业知识博客宗旨
    数理统计与Matlab: 第3章 假设检验
    数理统计与Matlab: 第1章 数理统计基本概念
    线性代数:第一章 多项式2
    LaTeX科技排版入门简介[Z]
    ISIGHT 5.0 components guide
    用MATLAB优化工具箱解线性规划
    7.忙里偷闲聚众奔庆典 创建型模式总结 1
    9.嫁接品种火爆搞科研 适配器模式
    11.明月如何代表我的心 装饰模式
  • 原文地址:https://www.cnblogs.com/whx7762/p/7850529.html
Copyright © 2020-2023  润新知