aspectJ捕获切点并且获得切点的参数
在捕获切点的同时,能够截获切点运行时需要的参数,下面是例子。
package aspectjtest;
public class MyClass {
public void foo(int number,String name){
System.out.println("inside foo(int,String)" + number + '\t' + name);
}
public void test(int number,String name){
System.out.println("inside test(int,String)" + number + '\t' + name);
}
public static void main(String[] args){
MyClass myObject = new MyClass();
// myObject.foo(1,"jack");
myObject.test(3, "cccc");
/* Person p = new Person();
p.say();
Person p2 = new Student();
p2.say();*/
}
}
切面代码:
public aspect Testargs {
pointcut testargs(int param1, String param2) : call(void aspectjtest.MyClass.test(int,String))&&args(param1,param2);
before(int param1,String param2):testargs(param1,param2){
System.out.println(param1);
System.out.println(param2);
return;
}
}