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

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

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

    千山鳥飛絕 萬徑人蹤滅
    勤練內功,不斷實踐招數。爭取早日成為武林高手
    Spring提供了兩種切面聲明方式,實際工作中我們可以選用其中一種:
          基于XML配置方式聲明切面。
          基于注解方式聲明切面。
    要進行AOP編程,首先我們要在spring的配置文件中引入aop命名空間:
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:aop="http://www.springframework.org/schema/aop"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
               http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
               http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
    </beans>


    基于注解方式聲明切面

    @Aspect
    public class LogPrint {
     @Pointcut("execution(* cn.itcast.service..*.*(..))")
     private void anyMethod() {}//聲明一個切入點 
     @Before("anyMethod() && args(userName)")//定義前置通知
     public void doAccessCheck(String userName) {
     } 
     @AfterReturning(pointcut="anyMethod()",returning="revalue")//定義后置通知
     public void doReturnCheck(String revalue) {
     }
     @AfterThrowing(pointcut="anyMethod()", throwing="ex")//定義例外通知
        public void doExceptionAction(Exception ex) {
     }
     @After("anyMethod()")//定義最終通知
     public void doReleaseAction() {
     }
     @Around("anyMethod()")//環繞通知
     public Object doBasicProfiling(ProceedingJoinPoint pjp) throws Throwable {
      return pjp.proceed();
     }
    }



    基于基于XML配置方式聲明切面


    public class LogPrint {
     public void doAccessCheck() {}定義前置通知
     public void doReturnCheck() {}定義后置通知
        public void doExceptionAction() {}定義例外通知
     public void doReleaseAction() {}定義最終通知
     public Object doBasicProfiling(ProceedingJoinPoint pjp) throws Throwable {
      return pjp.proceed();環繞通知
     }
    }


    <bean id="orderservice" class="cn.itcast.service.OrderServiceBean"/>
    <bean id="log" class="cn.itcast.service.LogPrint"/>
    <aop:config>
      <aop:aspect id="myaop" ref="log">
       <aop:pointcut id="mycut" expression="execution(* cn.itcast.service..*.*(..))"/>
       <aop:before pointcut-ref="mycut" method="doAccessCheck"/>
       <aop:after-returning pointcut-ref="mycut" method="doReturnCheck "/>
       <aop:after-throwing pointcut-ref="mycut" method="doExceptionAction"/>
       <aop:after pointcut-ref="mycut" method=“doReleaseAction"/>
       <aop:around pointcut-ref="mycut" method="doBasicProfiling"/>
      </aop:aspect>
    </aop:config>
     

    posted on 2009-09-02 12:14 笑口常開、財源滾滾來! 閱讀(2178) 評論(0)  編輯  收藏 所屬分類: spring學習
     
    主站蜘蛛池模板: 成人特级毛片69免费观看| 亚洲 暴爽 AV人人爽日日碰| 一个人看的hd免费视频| 成人伊人亚洲人综合网站222| 国产精品亚洲片在线花蝴蝶| 尤物永久免费AV无码网站| 亚洲AV无码AV男人的天堂不卡| 国产精品jizz在线观看免费| 老外毛片免费视频播放| 亚洲av手机在线观看| 毛片基地看看成人免费| 久久久无码精品亚洲日韩蜜桃| 免费观看91视频| 亚洲成人福利在线| 成人免费视频小说| 日本在线观看免费高清| 亚洲乱码日产一区三区| 亚洲无砖砖区免费| 国产精品亚洲一区二区无码| 亚洲国产成人久久综合区| 一个人免费视频在线观看www| 久久水蜜桃亚洲av无码精品麻豆 | 国产亚洲情侣一区二区无码AV| 国产99久久久久久免费看| 亚洲国产成人久久综合一| 91手机看片国产永久免费| 色窝窝亚洲av网| 久久精品亚洲综合专区| 久久经典免费视频| 人妻巨大乳hd免费看| 久久精品国产亚洲av高清漫画| 日韩免费视频观看| 三年片免费观看大全国语| 亚洲成aⅴ人在线观看| 亚洲Av无码国产情品久久 | 免费大香伊蕉在人线国产| 你是我的城池营垒免费看| 亚洲黄色激情视频| 亚洲精品国产精品乱码视色 | 亚洲AV午夜福利精品一区二区| 国产大片线上免费观看|