zoukankan      html  css  js  c++  java
  • 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>

       

  • 相关阅读:
    jsp转向
    什么是 XDoclet?
    tomcat中的几点配置说明
    mysql5问题
    POJ 3734 Blocks
    POJ 2409 Let it Bead
    HDU 1171 Big Event in HDU
    POJ 3046 Ant Counting
    HDU 2082 找单词
    POJ 1286 Necklace of Beads
  • 原文地址:https://www.cnblogs.com/whx7762/p/7850529.html
Copyright © 2011-2022 走看看