隨筆-9  評論-168  文章-266  trackbacks-0

          import org.aspectj.lang.annotation.AfterReturning;
          import org.aspectj.lang.annotation.Aspect;

          @Aspect
          public class BusinessHistory {

          /* 連接點(定義一個類包含以下方法):
           * public String list(String u){
            //this.
            System.out.println("list(String u)");
            return "return list(String u)";
           }*/
           /*切面(定義一個類):
            *
            *(1)切入點:
            *@Pointcut("execution(* com.tb.app.cf.servicex.emp.*.* (..))") public void
            * pointcutA(){ }
            *
            *切入點表達式(詳見spring開發手冊核心技術部分):
            a. "execution(* com.tb.app.cf.servicex.emp.*.*(..))" emp包下的所有方法
            b. "execution(* com.CfDimissionLogManager.*(..))" CfDimissionLogManager類的所有方法
            c. "execution(* com.service.save(..))" service包下方法名為save,參數個數任意
            d. "execution(* org.service.*.*())" 限定service包中任意類任意不帶參數的方法名
            e. "execution(* org.service.*.*(..)) && args(n,..)
                  限定service包中任意類任意方法名任意參數個數,并且傳入通知的第一個參數名為n,作為通知的參數名n.
                  注:execution(* org.service.*.*(..)) && args(n,..) 報錯,因為args限定有參,但execution限定無參.所以沖突.
            f. @AfterReturning(value="execution(* org.springside.helloworld.service.UserManager.list(..))&& args(u1)",
             argNames="u", //注:盡量不要使用argNames,采用args(..)
             returning="retVal")
            *
            *(2)通知:
           /*@AfterReturning(value="execution(* org.service.*.*(..))"
             returning="retVal")   //限定service包中,任意類任意方法名任意參數個數,但須有返回值的方法
           //參數retVal必須與returning值retVal一致,但retVal可與連接點返回值類型一致,名字可不同
           public void adviceA(String retVal) {
            System.err.println(retVal);
           }*/


           @AfterReturning(value="execution(* org.springside.helloworld.service.UserManager.list(..))&& args(u1)",
             returning="retVal")
           public void adviceA(String retVal,String u1) {
            System.err.println("return:"+retVal);
            System.err.println("param:"+u1);
           }
          }

          posted on 2010-04-07 10:01 紫蝶∏飛揚↗ 閱讀(783) 評論(0)  編輯  收藏 所屬分類: Spring
          主站蜘蛛池模板: 湖北省| 沈丘县| 泸西县| 新郑市| 古蔺县| 荥经县| 温宿县| 台南市| 淮安市| 汉川市| 开平市| 梁平县| 正宁县| 彭山县| 什邡市| 丰城市| 连云港市| 舒城县| 巨野县| 普兰店市| 特克斯县| 台北市| 民县| 孙吴县| 盐池县| 禹州市| 朝阳区| 綦江县| 平潭县| 合江县| 车致| 四川省| 视频| 兴国县| 宁远县| 临泽县| 大宁县| 武强县| 青冈县| 恩施市| 聂拉木县|