<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 笑口常開、財源滾滾來! 閱讀(2186) 評論(0)  編輯  收藏 所屬分類: spring學習
     
    主站蜘蛛池模板: 亚洲AV永久青草无码精品| 久久亚洲av无码精品浪潮| 亚洲一卡二卡三卡| 久久久久久曰本AV免费免费| 亚洲av永久无码精品漫画| 全黄大全大色全免费大片| 亚洲区小说区图片区QVOD| 中文字幕一区二区三区免费视频| 国产AV无码专区亚洲AV漫画| 中文字幕手机在线免费看电影| 亚洲国产精品无码中文字| 久久午夜无码免费| 亚洲嫩草影院在线观看| 无码视频免费一区二三区| 亚洲精品第一国产综合亚AV| 又大又黄又粗又爽的免费视频| 水蜜桃视频在线观看免费| 国产亚洲色视频在线| a毛片在线免费观看| 亚洲综合亚洲国产尤物| 成人网站免费观看| 噜噜噜亚洲色成人网站| 亚洲精品国产精品乱码在线观看| 99re在线精品视频免费| 亚洲 暴爽 AV人人爽日日碰| 亚洲?V无码成人精品区日韩| 国产精品永久免费| 亚洲综合激情另类小说区| 免费无遮挡无码视频网站| 日韩免费在线中文字幕| 亚洲国产精品第一区二区 | 三年片在线观看免费| 亚洲精彩视频在线观看| 国产高清免费观看| 99精品免费视频| 亚洲欧洲日产国码久在线| 国产亚洲精品高清在线| 免费观看AV片在线播放| 一区二区三区精品高清视频免费在线播放 | 日韩a级无码免费视频| 亚洲午夜在线播放|