• 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>

       

  • 相关阅读:
    Mac下搭建SVN服务器
    iOS的扩展类,扩展属性
    关于TableViewCell高度自适应问题的整理
    关于适配的一点考虑
    Visual format language
    css命名定义
    定位之初解
    定位以及relative和absolute的结合
    float的一点想法
    javascript的学习路子
  • 原文地址:https://www.cnblogs.com/whx7762/p/7850529.html
Copyright © 2020-2023  润新知