Я использую aop с пружинной загрузкой 2.1.1, у меня есть pointcut и советую регистрировать вызовы и возвращать значения методов, аннотированных пользовательской аннотацией @ LogAround
@Pointcut("@annotation(x.y.z.LogAround)")
public void logAroundJoinPoint() {}
@Before("logAroundJoinPoint()")
public void logBefore(JoinPoint joinPoint) {
// logging code
}
@AfterReturning(
pointcut = "logAroundJoinPoint()",
returning= "result")
public void logAfterReturning(JoinPoint joinPoint, Object result) {
//some logging code
}
Этот код регистрирует вызовы методов, как ожидается дляметоды, аннотированные @LogAround , за исключением случаев, когда я использую метод, аннотированный @Recover для повторной попытки весны!
Я понятия не имею, почему это происходит.
Один из вариантовк простому журналу с методом восстановления, но я бы предпочел, если есть способ сделать эту работу. Любая помощь приветствуется.
У меня есть демонстрационный код на git_demo_code