zoukankan      html  css  js  c++  java
  • spring之生命周期

    1、容器中对的生命周期

    spring可以管理 singleton作用域的bean的生命周期,spring可以精确地知道该bean何时被创建,何时被初始化完成,容器合适准备销毁该bean实例。

    spring无法管理prototype作用域的bean的生命周期,每次客户端请求prototype作用域的bean,bean实例都会完全交给客户端管理,容器不再跟踪其生命周期,

    spring管理生命周期有两个时期:

      注入依赖关系之后

      即将销毁bean之前

    2、注入依赖关系之后

    spring提供了两种方式在bean全部属性设置成功后执行特定行为,在spring注入依赖关系之后,spring会自动执行init-method指定的方法和实现InitializingBean的方法

    如果既指定了init-method,又实现了InitializingBean接口,这时候spring会先执行InitializingBean接口中定义的方法,让后去执行method执行的方法。

     a、使用init-method属性

     b、实现InitializingBean

    3、bean销毁之前的行为

    spring提供了两种方式在bean销毁之前执行特定行为,在spring销毁之前,spring会自动执行destroy-method指定的方法和实现DisposableBean接口。

    如果既指定了destroy-method,又实现了DisposableBean接口,这时候spring会先执行DisposableBean接口中定义的方法,然后去执行destroy-method执行的方法。

    a、使用destory-method属性

      b、实现DisposableBean

    4、协调不同作用域的bean

    当两个singleton作用域的的bean存在依赖关系时,或者prototype作用域的bean依赖singleton作用域的bean,使用spring提供的依赖关系进行管理即可

    但是当singleton作用域的bean依赖prototype作用的bean,spring如何处理呢

        singleton作用域的bean只有一次初始化的机会,他的依赖关系只在初始化阶段被设置,当singleton作用域的初始化之前,spring会先创建被依赖的prototype作用域的bean,然后才去初始化singleton作用域的bean,并将prototype bean注入singleton,以后无论何时通过singleton去访问prototype,得到的都是最初的那个prototype bean,相当于singleton bean把prototype bean变成了singleton bean行为。

  • 相关阅读:
    搭建一个免费的,无限流量的Bloggithub Pages和Jekyll入门
    通过扩展方法 链式方法 为MVC 3 视图添加验证
    让移动UI模式设计者获得灵感的10个有用的网站资源
    企业级应用架构(NHibernater+Spring.Net+MVC3)_V1.0
    把博客放在Github
    实例化需求—流程
    nginx+keepalievd,实现负载均衡和故障点切换。keepalived双机热备。
    古城钟楼
    从初步使用该控件到多维数据集控件PivotGridControl
    搜索引擎的评价
  • 原文地址:https://www.cnblogs.com/pjfmeng/p/7543864.html
Copyright © 2011-2022 走看看