如何在aspectj中将一些参数从before方法传递到after
How to pass some parameter from before method to after in aspectj
下面是我的 aspectJ 的代码 class
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() 中使用该值来实现相同的方法。
我设置某些值的当前代码是 class 级别变量,在多线程环境中不起作用。
请建议我如何实现它
非常简单:改用 around()
建议。这里不需要任何高级技巧。
下面是我的 aspectJ 的代码 class
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() 中使用该值来实现相同的方法。 我设置某些值的当前代码是 class 级别变量,在多线程环境中不起作用。 请建议我如何实现它
非常简单:改用 around()
建议。这里不需要任何高级技巧。