我愛熊貓

          最新評論

          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

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


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


          網站導航:
           
          主站蜘蛛池模板: 泸溪县| 新民市| 双峰县| 伊金霍洛旗| 新龙县| 阳城县| 大新县| 苍溪县| 澎湖县| 扎兰屯市| 枣阳市| 成武县| 南充市| 阳谷县| 马龙县| 炎陵县| 洛阳市| 黄浦区| 嫩江县| 土默特左旗| 盖州市| 太保市| 子长县| 南平市| 平阳县| 桦甸市| 江达县| 临沭县| 馆陶县| 舞钢市| 当雄县| 偏关县| 始兴县| 秀山| 北宁市| 桦川县| 沂水县| 郯城县| 遂溪县| 正阳县| 崇左市|