Как насчет класса Log
public class Log {
private long start;
private long end;
public long getStart() {
return start;
}
public void setStart(long start) {
this.start = start;
}
public long getEnd() {
return end;
}
public void setEnd(long end) {
this.end = end;
}
@Override
public String toString() {
return "Log [start=" + start + ", end=" + end + "]";
}
И передать экземпляр этого объекта через вызовы API.
Скажите BeanOne.methodOne (Log, ..) -> BeanTwo.methodTwo(Журнал,..) . BeanTwo.methodTwo () вызывает внешний API, и время записывается в экземпляре журнала.
и следующий совет:
@Around("execution(* methodOne(..)) && args(log)")
public void testAdviceBeanOne(ProceedingJoinPoint pjp,Log log) {
System.out.println("Before methodOne()");
try {
System.out.println(log);
pjp.proceed();
System.out.println(log);
} catch (Throwable e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("After methodOne()");
}
Дает вывод
Before methodOne()
Log [start=0, end=0]
Log [start=1572408716134, end=1572408716136]
After methodOne()
Там может быть более элегантное решение, все еще мои два цента