我有一个应记录的跟踪方面:
我遇到第二个问题。如何在没有双重记录所有退出的情况下为这个案例创建建议,就像现在我有一个@After建议和一个@AfterReturning(value =“publicMethodCall()”,returns =“o”)的情况一样。我可以以某种方式为void返回调用@AfterReturning建议,并且当它返回时仍然检索它的值是非空的(可能不是因为无法判断该方法是否返回null或返回类型是否为空)。
我猜,这应该很容易,但我看不出来......
答案 0 :(得分:3)
使用建议会更简单。一个切入点/建议对。 (我在这里使用代码样式aspectj语法,因为我更喜欢它)。如果你需要,我可以翻译成@AspectJ风格:
Object around() : publicMethodCall() {
try {
Object result = proceed();
log(result, thisJoinPoint);
return result;
} catch (Throwable t) {
log(t, thisJoinPoint);
throw t;
}
}
此处,如果您的方法返回void,则result
将为null
。