如何在aspectj

时间:2018-06-17 12:29:11

标签: java aop aspectj spring-aop

以下是我的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()中使用该值来获得相同的方法。 我设置一些值的当前代码是类级变量,在多线程环境中不起作用。 请建议我如何实现它

1 个答案:

答案 0 :(得分:0)

非常简单:改为使用around()建议。这里不需要任何高级技巧。