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
最新推荐文章于 2022-05-03 10:37:43 发布
本文通过一个具体的示例介绍了如何使用AspectJ实现方法调用前的拦截操作。示例中定义了一个切面,该切面在特定类的方法被调用之前打印提示信息。通过对比execution与call两种pointcut表达式的使用方式,展示了this关键字在AspectJ中的意义。
2969

被折叠的 条评论
为什么被折叠?



