package com.sheng.aspectj;
//this 是否可以理解为所处的环境呢。。 呵呵
public aspect TestAspectj {
pointcut beforeExecutionCut() : execution(void *..sayHello(..)) && target(com.sheng.aspectj.HelloWord);
//两句的变化可以看eclipse左边的提示,如下图
pointcut beforeCallCut() : call(void *..sayHello(..)) && this(com.sheng.aspectj.HelloWord);
// pointcut beforeCallCut() : call(void *..sayHello(..)) && this(com.sheng.aspectj.Test);
before() : beforeExecutionCut() {
System.out.println("please say hello first");
}
before() : beforeCallCut() {
System.out.println("please say hello second");
}
}
package com.sheng.aspectj;
public class HelloWord {
public void sayHello() {
System.out.println("hello word ");
}
}
package com.sheng.aspectj;
public class Test {
void sayHello() {
new HelloWord().sayHello();
}
public static void main(String []args) {
new Test().sayHello();
}
}
aspectj this , target
最新推荐文章于 2019-07-24 16:58:01 发布