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)切入點類似,但重要的區(qū)別是:在什么地方調(diào)用通知,以及它的環(huán)境是什么?
          就call(Signature)切入點來說,在調(diào)用方法的地方調(diào)用通知。調(diào)用通知的環(huán)境是調(diào)用類。一旦進入方法,因而調(diào)用的環(huán)境是正在執(zhí)行的方法時,就會調(diào)用execution(Signature)切入點。
          另外:call(Signature)切入點和execution(Signature)切入點在捕獲繼承和/或重寫(依賴于對象的靜態(tài)和動態(tài)類型)的對象方法上的連接點時它們有一些奇怪的行為。
           
          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
          主站蜘蛛池模板: 东明县| 农安县| 陆河县| 苍南县| 平陆县| 九寨沟县| 洛隆县| 平凉市| 吉水县| 邻水| 南阳市| 石嘴山市| 临湘市| 高陵县| 香港 | 凭祥市| 娄底市| 阿坝县| 大理市| 长顺县| 鄂州市| 樟树市| 通辽市| 宝坻区| 绥德县| 凤翔县| 兴化市| 临湘市| 库伦旗| 宝丰县| 合山市| 富川| 泰和县| 永福县| 汶上县| 贵州省| 类乌齐县| 丹东市| 钟祥市| 竹山县| 临沭县|