posts - 10,comments - 4,trackbacks - 0

          LogAroundAdvice 通知
          package net.blogjava.dodoma.spring.aop;

          import org.aopalliance.intercept.MethodInterceptor;
          import org.aopalliance.intercept.MethodInvocation;
          import org.apache.commons.logging.Log;
          import org.apache.commons.logging.LogFactory;

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

          ?public Object invoke(MethodInvocation arg) throws Throwable {
          ??//?調用目標對象之前
          ??log.info("before the target object");
          ??Object val=arg.proceed();
          ? //調用目標對象之后
          ??log.info("the arg is "+arg);
          ??log.info("after the target object");
          ??return val;
          ?}

          }

          測試方法

          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 LogAroundAdvice ());
          ??factory.setTarget(new Hello("hello"));
          ??try{
          ??HelloI hi=(HelloI)factory.getProxy();
          ??hi.sayHello("ma","bin");}
          ??catch(Exception e){e.printStackTrace();}
          ?}

          }

          posted on 2006-03-28 12:52 dodoma 閱讀(285) 評論(1)  編輯  收藏 所屬分類: spring

          FeedBack:
          # re: spring之aop:LogAroundAdvice
          2006-03-28 13:02 | o0水易今心
          啊哦!

          沙發耶

          呵呵

          繼續裝點你的家哦!  回復  更多評論
            
          主站蜘蛛池模板: 澄城县| 洛浦县| 如东县| 炉霍县| 兴化市| 古交市| 吉隆县| 南澳县| 西吉县| 龙江县| 富顺县| 密云县| 怀宁县| 洛川县| 江孜县| 开封市| 禄丰县| 股票| 肃南| 韩城市| 堆龙德庆县| 临漳县| 昌图县| 秀山| 寻甸| 寿光市| 孙吴县| 永胜县| 丰县| 剑阁县| 静安区| 凤庆县| 台州市| 阳西县| 额尔古纳市| 南木林县| 安乡县| 吉隆县| 延边| 磴口县| 竹溪县|