<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學習
     
    主站蜘蛛池模板: 亚洲高清视频一视频二视频三| 无码人妻AV免费一区二区三区 | 日韩av无码成人无码免费 | 激情婷婷成人亚洲综合| 亚洲人成网站免费播放| 亚洲色大成网站www永久网站| 亚洲香蕉久久一区二区三区四区| 亚洲专区一路线二| ASS亚洲熟妇毛茸茸PICS| 亚洲高清中文字幕免费| 亚洲欧美中文日韩视频| 亚洲AV日韩AV无码污污网站| 亚洲欧美日韩综合久久久| 亚洲AV无码成人网站在线观看| 亚洲人成色在线观看| 亚洲AV无码国产一区二区三区| 美女裸免费观看网站| 中文字幕免费人成乱码中国| 免费网站观看WWW在线观看| 久久久久成人精品免费播放动漫| 久久久久免费看成人影片| 国产a视频精品免费观看| 青草草在线视频永久免费| 午夜亚洲福利在线老司机| 色久悠悠婷婷综合在线亚洲| 亚洲高清国产AV拍精品青青草原| 久久久亚洲欧洲日产国码农村| 亚洲色图古典武侠| 亚洲精华液一二三产区| 免费一级全黄少妇性色生活片| 中文在线观看免费网站| 19禁啪啪无遮挡免费网站| 国内自产少妇自拍区免费| 亚洲第一页综合图片自拍| 亚洲成a人片在线观看无码专区| 亚洲毛片一级带毛片基地| 亚洲AV色欲色欲WWW| 中文字幕av无码不卡免费| 国产成人无码免费看视频软件 | **实干一级毛片aa免费| 在线观看免费a∨网站|