zoukankan      html  css  js  c++  java
  • Spring Bean 的生命周期

    1. Bean的生命周期

    1. 实例化:Spring对bean 进行实例化;

    2. 填充属性:Spring将值和bean 的引用注入到 bean 对应的属性中;

    3. 如果bean 实现了 BeanNameAware接口,Spring将bean的ID传递给setBean-Name()方法;

    4. 如果bean实现了 BeanFactoryAware接口,Spring将调用setBeanFactory()方法,将BeanFactory 容器实例传入;

    5. 如果 bean 实现了 ApplicationContextAware 接口,Spring 将调用setApplicationContext()方法,将bean所在的应用上下文的引用传人进来;

    6. 前置处理器:如果bean 实现了 BeanPostProcessor接口,Spring 将调用它们的 post-ProcessBeforeInitialization()方法;

    7. 如果 bean实现了 InitializingBean接口,Spring 将调用它们的 after-PropertiesSet()方法。

    8. 如果 bean 使用init-method声明了初始化方法,该方法也会被调用;

    9. 后置处理器:如果 bean 实现了 BeanPostProcessor接口,Spring 将调用它们的 post-ProcessAfterInitialization()方法;

    10. 此时,bean 已经准备就绪,可以被应用程序使用了,它们将一直驻留在应用上下文中,直到该应用上下文被销毁;

    11. 销毁:如果bean实现了 DisposableBean接口,Spring将调用它的destroy()接口方法。同样,如果bean使用destroy-method声明了销毁方法,该方法也会被调用。

    2. 延迟加载

      默认情况下,容器启动后会将所有作用域为单例的 bean 都创建完成,我们可以通过 bean 的 lzay-init 属性延迟加载,等get这个bean时再创建这个 bean;

  • 相关阅读:
    jQuery-选择器
    Html-CSS-细节处理
    JS-练习题
    将博客搬至CSDN
    Linux学习(推荐学习资源)——保持更新
    借助Git实现本地与GitHub远程双向传输(同步GitHub仓库)以及一些使用错误解决
    Linux学习使用Vim
    linux学习之Ubuntu
    在docker中创建使用MySQL,并实现远程连接navicat
    Swing系列之控件一
  • 原文地址:https://www.cnblogs.com/virgosnail/p/9820736.html
Copyright © 2011-2022 走看看