<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

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

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

     }
    }

    運(yùn)行結(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 周銳 閱讀(220) 評(píng)論(0)  編輯  收藏 所屬分類: AspectJ
    主站蜘蛛池模板: 日韩亚洲国产综合高清| 亚洲youjizz| 亚洲尹人九九大色香蕉网站| 亚洲精品美女视频| 国产精品久久久久久亚洲影视| 一二三区免费视频 | 国产偷国产偷亚洲清高APP| 国产91免费在线观看| 亚洲综合另类小说色区色噜噜| 亚洲精品国产免费| 18成禁人视频免费网站| 久久久亚洲精品蜜桃臀| 亚洲国产成人99精品激情在线| 久久久受www免费人成| 无码人妻精品一二三区免费| 精品国产日韩亚洲一区| 久久国产精品免费一区| 久久精品视频亚洲| 一区二区三区在线观看免费| 国产午夜亚洲不卡| 91香蕉国产线在线观看免费| 在线a亚洲v天堂网2019无码| 亚洲精品无码久久久久牙蜜区| 免费91麻豆精品国产自产在线观看 | 四虎影院免费视频| 久久久久亚洲av无码专区| 国产91色综合久久免费| 久久久亚洲欧洲日产国码是AV| 国产在线观看无码免费视频| 国产精品色午夜免费视频| 亚洲一区二区三区高清视频| 日韩免费一区二区三区| 亚洲美国产亚洲AV| 久久亚洲2019中文字幕| 国产成人精品免费视频动漫| 亚洲Av无码国产一区二区| 韩国二级毛片免费播放| 亚洲综合精品成人| 午夜免费福利在线| 免费看黄的成人APP| 亚洲AV永久纯肉无码精品动漫|