1234567891011121314151617181920212223242526272829303132333435363738 |
- package test;
- import org.aspectj.lang.*;
- import org.aspectj.lang.reflect.*;
-
- public class Test3 {
- public static void main(String[] args) throws Exception {
- Test3 a = new Test3();
- a.foo(-3);
- }
- public void foo(int i) {
- this.x=i;
- }
- int x;
- }
-
- aspect Log {
- pointcut assign(Object newval, Object targ):
- set(* test..*) && args(newval) && target(targ);
-
-
- before(Object newval, Object targ): assign(newval,targ) {
- Signature sign = thisJoinPoint.getSignature();
- System.out.println(targ.toString() + "." + sign.getName() + ":=" + newval);
- }
- /*
- }
- // Different error message if you divide into two aspects
- aspect Tracing {
- */
- pointcut tracedCall():
- call(* test..*(..))/* && !within(Tracing)*/ && !within(Log);
-
- after() returning (Object o): tracedCall() {
- // Works if you comment out either of these two lines
- thisJoinPoint.getSignature();
- System.out.println(thisJoinPoint);
- }
- }
|