我愛熊貓

          最新評論

          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

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


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


          網站導航:
          博客園   IT新聞   Chat2DB   C++博客   博問  
           
          主站蜘蛛池模板: 乌兰察布市| 和顺县| 景洪市| 长乐市| 崇信县| 伊宁市| 云龙县| 都匀市| 惠安县| 漳浦县| 马龙县| 海伦市| 柞水县| 孙吴县| 嘉义市| 长岭县| 大埔区| 庆阳市| 高阳县| 读书| 武穴市| 东源县| 聂荣县| 乐昌市| 元谋县| 城口县| 许昌县| 中牟县| 广东省| 岳阳市| 安陆市| 凉山| 阜康市| 青阳县| 清原| 南乐县| 杂多县| 邢台县| 宁阳县| 山阳县| 瓦房店市|