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


  • 相关阅读:
    Oracle EBS—PL/SQL环境初始化之 fnd_global.apps_initialize
    fnd_profile.value的用法
    FND_MESSAGE 消息提示详解
    FORM触发器执行顺序
    大数据实战精英+架构师班 ④ 期
    .Net Core3.0 WebApi 十五:使用Serilog替换掉Log4j
    .Net Core3.0 WebApi 十四:基于AOP的切面redis缓存
    .Net Core3.0 WebApi 十三:自定义返回Json大小写格式
    .Net Core3.0 WebApi 十二:自定义全局消息返回过滤中间件
    .Net Core3.0 WebApi 十一:基于Log4j的全局异常处理
  • 原文地址:https://www.cnblogs.com/Black-YeJing/p/9131127.html
Copyright © 2011-2022 走看看