• Bean的生命周期


    Spring容器可以管理singleton作用域的Bean的生命周期,在此作用域下,Spring能够精确地指导该Bean何时被创建,何时初始化完成以及何时被销毁。对于prototype作用域的Bean,Spring只负责创建,当容器创建Bean实例后,Bean的实例就会交给客户端代码来管理,Spring容器将不再跟踪其生命周期。每次客户端请求prototype作用域的Bean的声明周期。

    了解Bean的生命周期的意义就在于,可以在某个Bean生命周期某些指定时刻完成一些相关操作。

    Bean的生命周期的整个执行过程如下:

    ①   实例化(当我们的程序加载beans.xml文件),把我们的bean(前提是scope=singleton)实例化到内存

    ②   调用set方法设置属性

    ③   如果你实现了bean名字关注接口(BeanNameAware)则,可以通过setBeanName获取id号

    ④   如果你实现了 bean工厂关注接口,(BeanFactoryAware),则可以获取BeanFactory

    ⑤   如果你实现了 ApplicationContextAware接口,则调用方法

    //该方法传递ApplicationContext

             publicvoid setApplicationContext(ApplicationContext arg0)

                                throwsBeansException {

                       //TODO Auto-generated method stub

                       System.out.println("setApplicationContext"+arg0);

             }

    ⑥   如果bean 和 一个后置处理器关联,则会自动去调用 Object postProcessBeforeInitialization方法

    ⑦   如果你实现InitializingBean接口,则会调用 afterPropertiesSet

    ⑧   如果自己在<beaninit-method=”init” /> 则可以在bean定义自己的初始化方法.

    ⑨   如果bean 和 一个后置处理器关联,则会自动去调用 Object postProcessAfterInitialization方法

    ⑩   将准备就绪的Bean交给调用者

    ⑪   Spring中Bean的销毁。调用DisposableBean()的destory()方法或者调用destory-method属性配置的销毁方法

     

    总结:但是在实际开发过程中一般只用了:1->2->6->10->9->11


  • 相关阅读:
    十七、Java基础之final
    十六、Java基础之super
    十五、Java基础之多态
    十四、Java基础之方法重写/覆盖
    十三、Java基础之单例模式
    十二、Java基础之继承
    十一、Java基础之static关键字
    十、Java基础之this介绍
    九、Java基础之参数传递(值传递)
    利用ResultFilter实现asp.net mvc3 页面静态化
  • 原文地址:https://www.cnblogs.com/Black-YeJing/p/9131127.html
Copyright © 2020-2023  润新知