У меня есть простой аспект (см. Ниже) с аннотацией @Around
. Этот аспект работает, когда приложение не использует реактивную парадигму. Но когда приложение возвращает Mono или Flux не работает должным образом.
Мне нужно получить объект, возвращаемый из метода, чтобы сгенерировать объект JSON для использования в качестве журнала, генерировать события и т. Д.
Вот мой код, который работает в нереактивных классах:
@Around("@annotation(simpleEvent)")
public Object logExecutionTime(ProceedingJoinPoint joinPoint, SimpleEvent simpleEvent) throws Throwable {
final long start = System.currentTimeMillis();
Object proceed = null;
try {
proceed = joinPoint.proceed();
// here in the real life the object that transformed in json to do others actions
System.out.println(proceed);
final long executionTime = System.currentTimeMillis() - start;
System.out.println(joinPoint.getSignature() + " executed in " + executionTime + "ms");
return proceed;
} catch (Exception e) {
e.printStackTrace();
}
return proceed;
}
Как получить объект, возвращаемый из joinPoint.proceed()
, когда есть Mono или Flux?
Заранее спасибо.