<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 431,  comments - 344,  trackbacks - 0

    捕獲何時訪問對象的屬性
          pointcut <pointcut name>(<any values to be picked up>) : get(<optional modifier> <type> <class>.<field>);

          get(Signature)切入點不能捕獲對靜態屬性的訪問,盡管從AspectJ的語法角度講以這種方式定義切入點是完全合法的。
          使用after() returning(<ReturnValue>)形式的通知,它在聲明的returning()部分中帶有一個標識符,用于包含訪問過的值。
    捕獲何時修改對象的字段
          pointcut <pointcut name>(<any values to be picked up>) : set(<optional modifier> <type> <class>.<field>);

    package com.eric.aspectj;

    public aspect GetRecipe {
     pointcut getNamePointcut() : get(String MyClass.name);
     before() : getNamePointcut() {
      System.out.println("-------------- Aspect Advice Logic ---------------");
      System.out.println("In the advice picked by " + "getNamePointcut()");
      System.out.println("Signature: " + thisJoinPoint.getStaticPart().getSignature());
      System.out.println("Source Line: " + thisJoinPoint.getStaticPart().getSourceLocation());
      System.out.println("--------------------------------------------------");
     }
     after() returning(String value) : getNamePointcut() {
      System.out.println("Value being accessed is " + value);
     }
    }

    package com.eric.aspectj;

    public class MyClass {
     public static final String CONSTANT = "CONSTANT STRING";
     private int number;
     private String name;

     public String getName()
     {
      System.out.println("In the getName() method");
      return this.name;
     }

     public void setName(String name)
     {
      System.out.println("In the setName(String) method");
      this.name = name;
      System.out.println("The name field has been set");
     }

     public int getNumber()
     {
      System.out.println("In the getNumber() method");
      return this.number;
     }

     public void setNumber(int number)
     {
      System.out.println("In the setNumber(int) method");
      this.number = number;
      System.out.println("The number field has been set");
     }

     public static final void main(String args[])
     {
      MyClass myObject = new MyClass();

      myObject.setName("Eric Chau");
      System.out.println("The name has been set");

      myObject.setNumber(88888888);
      System.out.println("The number has been set");
      System.out.println("Name Stored = " + myObject.getName());
      System.out.println("Number Stored = " + myObject.getNumber());

      System.out.println("The constant value is " + MyClass.CONSTANT);

     }
    }

    運行結果:
    In the setName(String) method
    The name field has been set
    The name has been set
    In the setNumber(int) method
    The number field has been set
    The number has been set
    In the getName() method
    -------------- Aspect Advice Logic ---------------
    In the advice picked by getNamePointcut()
    Signature: String com.eric.aspectj.MyClass.name
    Source Line: MyClass.java:11
    --------------------------------------------------
    Value being accessed is Eric Chau
    Name Stored = Eric Chau
    In the getNumber() method
    Number Stored = 88888888
    The constant value is CONSTANT STRING

    posted on 2007-07-04 14:31 周銳 閱讀(219) 評論(0)  編輯  收藏 所屬分類: AspectJ
    主站蜘蛛池模板: 亚洲aⅴ无码专区在线观看| 国产精一品亚洲二区在线播放| 日韩吃奶摸下AA片免费观看| 蜜臀98精品国产免费观看| 日本在线看片免费| 99蜜桃在线观看免费视频网站| 91久久青青草原线免费| 2021国内精品久久久久精免费| 2019中文字幕在线电影免费| 性xxxxx免费视频播放 | 亚洲AV综合色区无码二区偷拍| 亚洲国产精品成人精品小说| 亚洲一区二区三区久久| 亚洲中文字幕无码久久| 久久精品国产亚洲av瑜伽| 黄色毛片免费网站| 国产精品视频全国免费观看| 免费观看男人吊女人视频| **aaaaa毛片免费同男同女| 九九精品免费视频| 国产最新凸凹视频免费| 亚洲色偷拍区另类无码专区| 亚洲熟妇无码八AV在线播放| 亚洲日本一区二区三区| 亚洲一区二区三区亚瑟| 另类小说亚洲色图| 三年在线观看免费观看完整版中文 | 国产一精品一aⅴ一免费| 精品亚洲一区二区三区在线播放 | 午夜高清免费在线观看| 亚洲AV无码一区二三区| 国产精品亚洲片在线观看不卡 | 亚洲AV无码1区2区久久| 亚洲欧洲日产国码www| 亚洲日韩久久综合中文字幕| 色婷婷综合缴情综免费观看| 男女作爱在线播放免费网站| 国产免费AV片在线播放唯爱网| 免费看国产一级特黄aa大片| 亚洲va中文字幕无码久久 | 亚洲一区二区三区无码中文字幕|