<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    佳麗斯 加厚雙人/單人秋冬被子暖冬 羊毛被芯羊毛柔絲被特價包郵 憂憂魚冬外穿打底褲女秋冬厚長褲女褲加絨加厚高腰彈力鉛筆褲靴褲 韓國代購2013新款 韓版秋冬休閑女時尚磨破口袋衛(wèi)衣韓版學(xué)生裝 潮

    有時,退一步,能一口氣進幾步,只是這先退一步需要勇氣和自信。

    用心愛你,努力工作。

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      70 隨筆 :: 1 文章 :: 33 評論 :: 0 Trackbacks

    呵呵,這兩天項目比較急,事情也比較多,所以沒有及時更新。
    上一回簡單介紹了代理機制,通過創(chuàng)建LogBeforeAdvice來實現(xiàn)。通過實現(xiàn)MethodBeforeAdvice接口,會在目標(biāo)對象的方法執(zhí)行之前被呼叫。當(dāng)然也可以通過實現(xiàn)AfterReturningAdvice,使得目標(biāo)對象的方法在執(zhí)行之后被調(diào)用。
    同樣創(chuàng)建LogAfterAdvice類,實現(xiàn)AfterReturningAdvice接口。
    lib包下載:http://www.ziddu.com/download/3555992/SpringAndaop.rar.html

    (1)LogAfterAdvice.java

    package com.proxy;

    import java.lang.reflect.*;
    import java.util.logging.Logger;
    import java.util.logging.Level;
    import org.springframework.aop.AfterReturningAdvice;

    public class LogAfterAdvice  implements AfterReturningAdvice{

     private Logger logger=Logger.getLogger(this.getClass().getName());
     public void afterReturning(Object object,Method method,Object[] args,Object target) throws Throwable
     {
      logger.log(Level.INFO,"LogAfterAdvice mehtod ends "+method);
     }

    }
    (2)advice-config.xml修改如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

    <beans>
     <bean id="logBeforeAdvice" class="com.proxy.LogBeforeAdvice" />
        <bean id="logAfterAdvice" class="com.proxy.LogAfterAdvice" />
     <bean id="helloSpeaker" class="com.proxy.HelloSpeaker" />
     
     <bean id="helloProxy"
      class="org.springframework.aop.framework.ProxyFactoryBean"><!--建立代理對象-->
      <property name="proxyInterfaces"><!--代理接口-->
       <value>com.proxy.IHello</value>
      </property>
      <property name="target"><!--代理目標(biāo)-->
       <ref bean="helloSpeaker"/>
      </property>
      <property name="interceptorNames"><!--代理實現(xiàn)類-->
       <list>
        <value>logBeforeAdvice</value>
        <value>logAfterAdvice</value>
       </list>
      </property>
     </bean>
     
    </beans>

    這樣就實現(xiàn)了目標(biāo)對象的方法在執(zhí)行之后被調(diào)用。


    同樣,在方法執(zhí)行前后調(diào)用目標(biāo)對象的方法也可以不通過上面的這種方式(畢竟實現(xiàn)兩個接口比較麻煩),可以直接通過實現(xiàn)MethodInterceptor接口,達到目的。
    如LogInterceptor類便實現(xiàn)了這樣的接口,如下
    (3)LogInterceptor.java

    package com.proxy;

    import java.util.logging.Logger;
    import java.util.logging.Level;
    import org.aopalliance.intercept.*;

    public class LogInterceptor  implements MethodInterceptor{

     private Logger logger=Logger.getLogger(this.getClass().getName());

     public Object invoke(MethodInvocation Invocation) throws Throwable {
      
      logger.log(Level.INFO,"LogInterceptor method starts..."+Invocation.getMethod());
      
      Object result=null;
      
      try
      {
       result=Invocation.proceed();
      }
      finally
      {
       logger.log(Level.INFO,"LogInterceptor method ends..."+Invocation.getMethod());
      }
      return result;
     }

    }

    (4)advice-config.xml 配置文件修改如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

    <beans>
     <bean id="logInterceptor" class="com.proxy.LogInterceptor" />
     <bean id="helloSpeaker" class="com.proxy.HelloSpeaker" />
     
     <bean id="helloProxy"
      class="org.springframework.aop.framework.ProxyFactoryBean"><!--建立代理對象-->
      <property name="proxyInterfaces"><!--代理接口-->
       <value>com.proxy.IHello</value>
      </property>
      <property name="target"><!--代理目標(biāo)-->
       <ref bean="helloSpeaker"/>
      </property>
      <property name="interceptorNames"><!--代理實現(xiàn)類-->
       <list>
        <value>logInterceptor</value>
       </list>
      </property>
     </bean>
     
    </beans>

    通過實現(xiàn)MethodInterceptor接口,同樣實現(xiàn)了這樣的功能。



     

    posted on 2007-10-31 19:14 王生生 閱讀(967) 評論(0)  編輯  收藏 所屬分類: Spring
    森露2013新款豹紋打底衫 高領(lǐng) 女 長袖 修身長袖t恤女 加絨加厚冬 2013春秋新款女裝 潮修身大碼長袖小西裝外套女 韓版中長款小西裝 憂憂魚2013秋冬新款直筒褲女顯瘦長褲加絨黑色休閑褲修身西褲女褲
    主站蜘蛛池模板: 久久久精品免费国产四虎| 四虎国产成人永久精品免费| 亚洲日本中文字幕一区二区三区| 青草青草视频2免费观看| 国产AV无码专区亚洲AV漫画| 久久久久久久岛国免费播放| 日本亚洲色大成网站www久久| 免费观看四虎精品国产永久| 在线免费观看伊人三级电影| 亚洲视频免费在线看| 国产又黄又爽又猛的免费视频播放| 国产精品小视频免费无限app| 亚洲jjzzjjzz在线观看| 亚洲国产午夜福利在线播放| 精品熟女少妇av免费久久| 亚洲欧好州第一的日产suv| 亚洲美女又黄又爽在线观看| 黄页网站在线观看免费高清| www免费黄色网| 亚洲 暴爽 AV人人爽日日碰| 亚洲区小说区图片区QVOD| 无码国产精品一区二区免费式影视| 一级看片免费视频| 亚洲丝袜中文字幕| 亚洲精品tv久久久久久久久| 在线播放免费人成视频在线观看| baoyu122.永久免费视频| 亚洲av成人中文无码专区| 亚洲春黄在线观看| 亚洲中文字幕久久精品无码APP| 中文字幕无码视频手机免费看| a级毛片毛片免费观看久潮| 亚洲AV成人精品日韩一区| 911精品国产亚洲日本美国韩国 | 国产免费人视频在线观看免费| 中文字幕免费不卡二区| 免费在线观看一区| 久久久久亚洲国产| 久久久久久亚洲精品成人| 亚洲精品无码乱码成人 | 三上悠亚亚洲一区高清|