<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)切入點不能捕獲對靜態(tài)屬性的訪問,盡管從AspectJ的語法角度講以這種方式定義切入點是完全合法的。
          使用after() returning(<ReturnValue>)形式的通知,它在聲明的returning()部分中帶有一個標(biāo)識符,用于包含訪問過的值。
    捕獲何時修改對象的字段
          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);

     }
    }

    運行結(jié)果:
    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 周銳 閱讀(230) 評論(0)  編輯  收藏 所屬分類: AspectJ
    主站蜘蛛池模板: 亚洲一级特黄特黄的大片| 久操视频在线免费观看| 免费va在线观看| 日本系列1页亚洲系列| 免费看的黄色大片| 亚洲AV无码一区二区三区牲色| 黑人粗长大战亚洲女2021国产精品成人免费视频 | 深夜免费在线视频| 久久久无码精品亚洲日韩软件| 一级特级aaaa毛片免费观看| 亚洲中文字幕不卡无码| 东方aⅴ免费观看久久av| 亚洲人成影院在线| 免费看美女裸露无档网站| 亚洲熟妇AV一区二区三区宅男| 国产精品免费视频一区| 一级做a爰片久久毛片免费看| 亚洲日本一区二区三区在线| 久久黄色免费网站| 亚洲毛片基地4455ww| 日本免费人成视频播放| 久久久久久久久久久免费精品| 亚洲av无码不卡一区二区三区| 精品国产污污免费网站aⅴ| 国产成人亚洲综合网站不卡| 四虎永久免费观看| 永久在线观看免费视频| 亚洲国产午夜电影在线入口| 免费不卡中文字幕在线| 好紧我太爽了视频免费国产| 色偷偷女男人的天堂亚洲网| 四虎影视永久免费观看| 四虎国产成人永久精品免费| 亚洲熟妇无码AV不卡在线播放| 国产亚洲视频在线播放| 久久精品免费全国观看国产| 一级做受视频免费是看美女| 亚洲精品日韩中文字幕久久久| 国产一区二区三区在线观看免费| 污视频在线观看免费| 风间由美在线亚洲一区|