posts - 431,  comments - 344,  trackbacks - 0

          execution(Signature)切入點的語法是:
          pointcut <pointcut name>(<any values to be picked up>) : execution(<optional  modifier> <return type> <class>.<method>(<parameter types>));
          它與call(Signature)切入點類似,但重要的區別是:在什么地方調用通知,以及它的環境是什么?
          就call(Signature)切入點來說,在調用方法的地方調用通知。調用通知的環境是調用類。一旦進入方法,因而調用的環境是正在執行的方法時,就會調用execution(Signature)切入點。
          另外:call(Signature)切入點和execution(Signature)切入點在捕獲繼承和/或重寫(依賴于對象的靜態和動態類型)的對象方法上的連接點時它們有一些奇怪的行為。
           
          package com.eric.aspectj;

          public aspect MyAspectj {
           pointcut callPointCut(My myClass, int age, String name) : execution(void com.eric.aspectj.My.foo(int, String)) && this(myClass) && args(age, name);
           before(My myClass, int age, String name) : callPointCut(myClass, age, name) {
            System.out.println("signature: " + thisJoinPoint.getStaticPart().getSignature());
            System.out.println("Source Line: " + thisJoinPoint.getStaticPart().getSourceLocation());
            System.out.println("before...name : " + name + " age : " + age);
           }
           after(My myClass, int age, String name) returning: callPointCut(myClass, age, name) {
            System.out.println("after...");
           }
          }

          posted on 2007-07-03 15:38 周銳 閱讀(355) 評論(0)  編輯  收藏 所屬分類: AspectJ
          主站蜘蛛池模板: 夏津县| 宁国市| 正蓝旗| 中宁县| 金塔县| 临泽县| 陆川县| 英吉沙县| 靖江市| 龙川县| 沁源县| 淅川县| 红原县| 邵东县| 社旗县| 绍兴县| 榆树市| 南皮县| 米泉市| 石屏县| 武冈市| 安新县| 广汉市| 景德镇市| 孝感市| 大庆市| 比如县| 五莲县| 竹北市| 宜城市| 山丹县| 历史| 虎林市| 乐陵市| 蒲江县| 华阴市| 和田县| 塔城市| 阜康市| 合阳县| 泸西县|