zoukankan      html  css  js  c++  java
  • Spring-depends on

    depends-on用来表示一个bean A的实例化依靠另一个bean B的实例化, 但是A并不需要持有一个B的对象,如果需要的话就不用depends-on。

    示例:

      步骤一:

    public class SystemSettings {
        public static int SESSION_TIMEOUT = 30;
        public static int REFRESH_CYCLE = 60;
    }

    步骤二:

    package org.hope.spring.bean.dependon;
    
    public class SysInit {
        public SysInit() {
            System.out.println("SysInit");
            //模拟从数据库中加载系统设置信息
            SystemSettings.REFRESH_CYCLE = 100;
            SystemSettings.SESSION_TIMEOUT = 10;
        }
    }

     步骤三:

    package org.hope.spring.bean.dependon;
    
    import java.util.Timer;
    import java.util.TimerTask;
    
    public class CacheManager {
        public CacheManager() {
            Timer timer = new Timer();
            TimerTask cacheTask = new CacheTask();
    
            timer.schedule(cacheTask, 0, SystemSettings.REFRESH_CYCLE * 1000);
        }
    
    
        public void cycle() {
            System.out.println("初始值:" + SystemSettings.REFRESH_CYCLE);
        }
    }

    步骤四:

    <bean id="sysInit" class="org.hope.spring.bean.dependon.SysInit"/>
    <bean id="manager" class="org.hope.spring.bean.dependon.CacheManager" depends-on="sysInit"/>

     步骤五:

    package org.hope.spring.bean.dependon;
    
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.test.context.ContextConfiguration;
    import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
    
    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration(locations = {"classpath:bean3.xml"})
    public class DependOnTest {
        @Autowired
        private CacheManager manager;
    
        @Test
        public void test() {
            manager.cycle();
        }
    }

    结果:

    初始值:100

    结论:

    sysInt先去manager实例化。

    https://gitee.com/huayicompany/spring-learn/tree/master/spring-bean

    参考:

    [1] 《精通Spring4.x企业应用开发实战》,电子工业出版社,陈雄华

  • 相关阅读:
    VUE常用传值方式、父传子、子传父、非父子组件传值
    ios10中禁止用户缩放页面
    TCP MSS
    C++11 之 override
    unordered_set
    c++Lambda
    QUIC实现代码分析
    C++11新特性之十:enable_shared_from_this
    c++11 atomic
    How to Write a QUIC Endpoint Program
  • 原文地址:https://www.cnblogs.com/happyflyingpig/p/8060060.html
Copyright © 2011-2022 走看看