以下是我的aspectJ类的代码
public aspect TestAspect {
String str;
long time;
pointcut callLoggingAspect():call(* com.dilip.bdp..*.*(..));
before() : callLoggingAspect() {
str = thisJoinPoint.getSignature().toShortString();
time = System.nanoTime();
}
after() : callLoggingAspect() {
System.out.println(thisJoinPoint.getSignature().toShortString()+":Before="+str);
System.out.println("Time taken by method "+thisJoinPoint.getSignature().toShortString()+" to execute ="+(System.nanoTime()-time));
}
}
我需要的是在before()中捕获一些东西,并在after()中使用该值来获得相同的方法。 我设置一些值的当前代码是类级变量,在多线程环境中不起作用。 请建议我如何实现它
答案 0 :(得分:0)
非常简单:改为使用around()
建议。这里不需要任何高级技巧。