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

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

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


    posts - 10,comments - 4,trackbacks - 0

    接口和實(shí)現(xiàn)類見LogBeforeAdvice的例子
    package net.blogjava.dodoma.spring.aop;

    import java.lang.reflect.Method;
    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    import org.springframework.aop.AfterReturningAdvice;

    public class LogAfterAdvice implements AfterReturningAdvice {
    ?protected static final Log log = LogFactory.getLog(LogAfterAdvice.class);
    ?public void afterReturning(Object returnVal, Method m, Object[] args,
    ???Object target) throws Throwable {
    ??// TODO Auto-generated method stub
    ??log.info("in the class "+this.getClass().getName()+"'s method afterReturning()");

    ??log.info("the target class is:" + target.getClass().getName());
    ??log.info("the target method is:" + m.getName());

    ??for (int i = 0; i < args.length; i++) {
    ???log.info("the method's args is:" + args[i]);
    ??}
    ??
    ??log.info("the returnValue is "+returnVal);
    ??//測試,如果返回裝備發(fā)生了異常.將如何處理程序流程
    ??//throw new Exception("返回裝備發(fā)生異常");
    ?}

    }

    測試代碼

    package net.blogjava.dodoma.spring.aop;

    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    import org.springframework.aop.framework.ProxyFactory;
    import org.springframework.beans.factory.BeanFactory;
    import org.springframework.beans.factory.xml.XmlBeanFactory;
    import org.springframework.core.io.ClassPathResource;
    import org.springframework.core.io.Resource;

    public class HelloTest {
    ?protected static final Log log = LogFactory.getLog(HelloTest.class);

    ?/**
    ? * @param args
    ? * @throws Exception
    ? */
    ?public static void main(String[] args) throws Exception {
    ??// TODO Auto-generated method stub
    ??Resource rs = new ClassPathResource("beans.xml");
    ??BeanFactory bf = new XmlBeanFactory(rs);

    ??HelloI h = (HelloI) bf.getBean("theBean");
    ??log.info("starting...");
    ??try {
    ???log.info(h.sayHello("ma", "bin"));
    ??} catch (Exception e) {
    ???e.printStackTrace();
    ??}
    ??log.info("end...");
    ??
    ??
    ??ProxyFactory factory=new ProxyFactory();
    ??factory.addAdvice(new LogAfterAdvice());
    ??factory.setTarget(new Hello("hello"));
    ??try{
    ??HelloI hi=(HelloI)factory.getProxy();
    ??hi.sayHello("ma","bin");}
    ??catch(Exception e){e.printStackTrace();}
    ?}

    }


    在beans.xml中加入如下代碼
    <bean id="theLogAfterAdvice" class="net.blogjava.dodoma.spring.aop.LogAfterAdvice"/>

    <property name="interceptorNames">
    ????? <list>
    ??????? <value>theLogAfterAdvice</value><!--此時(shí)直接使用advice,表明這個(gè)類所有的實(shí)例,方法,都享受advice的攔截-->
    ?????? </list>?
    </property>

    切入點(diǎn)可省略,如需要的話


    <!--切入點(diǎn)-->
    ? <!--Note: An advisor assembles pointcut and advice-->
    ? <bean id="theBeAdvisor" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">
    ??? <property name="advice">
    ????? <ref local="theLogAfterAdvice"/>
    ??? </property>
    ??? <!--匹配模式-->
    ??? <property name="pattern">
    ????? <value>.*</value>
    ??? </property>
    ? </bean>

    posted on 2006-03-28 12:37 dodoma 閱讀(410) 評(píng)論(0)  編輯  收藏 所屬分類: spring

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲第一视频在线观看免费| 亚洲精品综合久久| 免费在线观看h片| 日本免费一区二区三区四区五六区| 韩国免费A级毛片久久| 和老外3p爽粗大免费视频| h片在线播放免费高清| A国产一区二区免费入口| 国产va免费观看| 中文字幕在线观看免费| 国产自国产自愉自愉免费24区| 中国国产高清免费av片| 中文字幕的电影免费网站| 国产在线观看无码免费视频| 中文在线观看免费网站| 一区二区三区免费视频观看| CAOPORM国产精品视频免费| 国产精品1024在线永久免费| 国产麻豆一精品一AV一免费| 3344永久在线观看视频免费首页| 麻豆视频免费播放| 黄a大片av永久免费| 国产男女猛烈无遮挡免费网站 | 亚洲精华液一二三产区| 亚洲第一综合天堂另类专| 特级毛片aaaa级毛片免费| A毛片毛片看免费| 国产大片免费网站不卡美女| 成人毛片18女人毛片免费| 国产又黄又爽又刺激的免费网址| 久久精品国产亚洲Aⅴ蜜臀色欲| 亚洲AV无码码潮喷在线观看| 亚洲人成电影青青在线播放| 国产天堂亚洲国产碰碰| 色www永久免费网站| 97视频免费在线| 国产做床爱无遮挡免费视频| 亚洲色婷婷一区二区三区| 亚洲综合在线成人一区| 久久久久久亚洲精品无码| 三上悠亚电影全集免费|