• Spring depends-on介绍


    <!-- redis配置 -->
    <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
        <property name="maxActive" value="20" /> 
        <property name="maxIdle" value="10" /> 
        <property name="maxWait" value="1000" />  
        <property name="testOnBorrow" value="true" />
    </bean>
    <!-- jedis pool配置 -->
    <bean id="jedisPool" class="redis.clients.jedis.JedisPool" destroy-method="destroy" depends-on="jedisPoolConfig">
        <constructor-arg ref="jedisPoolConfig" />  
        <constructor-arg value="127.0.0.1" />  
        <constructor-arg type="int" value="6379" />  
    </bean>

    上面的代码是jedisPool交给spring处理的代码,比普通bean配置多了一个属性depends-on,这里就记录一下depends-on属性的作用和注意点:

    作用:depends-on用来指定Bean初始化及销毁时的顺序。

    如上面jedis pool定义depend-on="jedisPoolConfig",这意味着Spring总会保证jedisPoolConfig在jedisPool之前实例化,总是在jedisPool之后再销毁。

    适用的场景:用来确定bean定义中依赖关系不明确或者没有直接依赖关系时,指定bean在初始化或销毁时的明确顺序。

    需要注意的特点

    1、Spring管理的bean都是单例模式(singleton)

    2、实例化对象应该顺序化的,比如A依赖B,B依赖C,C依赖D...

    3、一个bean可以依赖多个bean,可以通过逗号(",")或者分号(";")来定义多个依赖对象:

    <bean id=a Class="com.twovv.A" depends-on="b,c,d" />
    <bean id=b Class="com.twovv.B" />
    <bean id=c Class="com.twovv.C" />
    <bean id=d Class="com.twovv.D" />

    4、初始化依赖关系不允许形成环闭依赖,下面的依赖关系定义是错误的,Spring将无法确定该如何实例化:

    <bean id=a Class="com.twovv.A" depends-on="b" />
    <bean id=b Class="com.twovv.B" depends-on="a" />
  • 相关阅读:
    POJ3094 UVALive3594 HDU2734 ZOJ2812 Quicksum【进制】
    UVALive5583 UVA562 Dividing coins
    POJ1979 HDU1312 Red and Black【DFS】
    POJ1979 HDU1312 Red and Black【DFS】
    POJ2386 Lake Counting【DFS】
    POJ2386 Lake Counting【DFS】
    HDU4394 Digital Square
    HDU4394 Digital Square
    UVA213 UVALive5152 Message Decoding
    UVA213 UVALive5152 Message Decoding
  • 原文地址:https://www.cnblogs.com/zhishan/p/3190771.html
Copyright © 2020-2023  润新知