<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
    主站蜘蛛池模板: 国产成人综合亚洲AV第一页| 国产精品视频免费一区二区三区| 国产亚洲大尺度无码无码专线| 色婷婷六月亚洲综合香蕉| 在线免费一区二区| 亚洲国产成人精品无码区二本 | 久久久久亚洲国产| 在线免费观看中文字幕| 亚洲AV无码成人网站在线观看| 成人免费777777| 免费人成视频在线观看免费| 亚洲第一页综合图片自拍| 一级毛片成人免费看a| 国产精品亚洲美女久久久| 在线观看肉片AV网站免费| 18亚洲男同志videos网站| 和日本免费不卡在线v| 久久亚洲精品成人无码| 亚洲人成影院在线观看| 久久国产精品免费网站| 中文字幕 亚洲 有码 在线 | 蜜桃视频在线观看免费网址入口| 亚洲色成人WWW永久在线观看| 日本免费一区尤物| 久久精品无码专区免费| 亚洲成年人电影网站| 精品国产一区二区三区免费看| 一个人看www免费高清字幕| 亚洲av永久无码精品古装片| 无码国产精品一区二区免费式影视 | 国产曰批免费视频播放免费s| 亚洲日韩精品无码专区加勒比| 免费a级毛片18以上观看精品| 2022国内精品免费福利视频| 亚洲一区二区三区夜色| 午夜免费福利在线观看| 国产精品免费一区二区三区| 亚洲国产成人久久精品app| 日韩精品亚洲专区在线观看| 人妻无码一区二区三区免费| 亚洲国产AV无码一区二区三区|