我愛熊貓

          最新評論

          spring aop 之三利用aop實現bean注入的熱插拔

          利用spring可以實現bean注入的熱插拔。

          先看xml的配置:


          <?xml version="1.0" encoding="UTF-8"?>
          <beans xmlns="http://www.springframework.org/schema/beans
          <bean id="helloServiceTarget" class="cn.com.ultrapower.service.HelloServiceImpl"/>
          <bean id="welcomeServiceTarget" class="cn.com.ultrapower.service.WelcomeServiceImpl"/>
          <bean id="swapper" class="org.springframework.aop.target.HotSwappableTargetSource">
          <constructor-arg ref="helloServiceTarget"/>
          </bean>
          <bean id="helloService" class="org.springframework.aop.framework.ProxyFactoryBean">
          <property name="targetSource" ref="swapper"/>
          </bean>
          </beans>

          上面代碼中HelloServiceImpl會打印hello,WelcomeServiceImpl會打印welcome。

          helloService默認會注入的是helloServiceTarget,利用swapper bean 在程序運行時將注入引用的修改為welcomeServiceTarget。

          測試用例如下:

          public void testSwapper() {
          /*
          * 實現了動態將helloservice實現切換到welcomeservice實現
          */
          String[] paths = {"applicationContext-hotswapper.xml"};
          ApplicationContext context = new ClassPathXmlApplicationContext(paths);
          HotSwappableTargetSource swapper = (HotSwappableTargetSource) context.getBean("swapper");
          IHelloService service = (IHelloService) context.getBean("helloService");
          // 第一次輸出
          service.sayHello();
          //獲取Welcome實現
          WelcomeServiceImpl welcomeTarget = (WelcomeServiceImpl) context.getBean("welcomeServiceTarget");
          //切換為welcome實現
          swapper.swap(welcomeTarget);
          // 第二次輸出
          service.sayHello();
          }

          上面代碼會輸出:

          hello

          welcome

          驗證了程序在運行中將service的實現由helloserviceImpl切換到welcomeserviceimpl

          posted on 2008-06-07 20:56 flyoo 閱讀(2616) 評論(1)  編輯  收藏

          評論

          # re: spring aop 之三利用aop實現bean注入的熱插拔[未登錄] 2013-12-16 15:25

          你上面說了等于白說。來點干貨,哥們!  回復  更多評論   


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 江华| 西乌珠穆沁旗| 兴山县| 台中县| 剑阁县| 莆田市| 桃源县| 鄂伦春自治旗| 光山县| 长顺县| 黄骅市| 岢岚县| 北宁市| 沾化县| 澄江县| 峨眉山市| 尼玛县| 屯门区| 蓝田县| 天水市| 堆龙德庆县| 盐池县| 固安县| 文昌市| 昆山市| 西安市| 新巴尔虎右旗| 高雄县| 南京市| 策勒县| 吉安县| 康马县| 大连市| 泸州市| 游戏| 东至县| 松溪县| 都昌县| 隆安县| 宜宾市| 普格县|