如何在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() 建议。这里不需要任何高级技巧。