Весной АОП вокруг советуют, не советуют остальные методы контроллера - PullRequest
0 голосов
/ 03 ноября 2018

Я пытаюсь проверить все запросы в RestController в приложениях на основе Spring и Spring MVC. Ниже приведена конфигурация моего приложения.

Я включил @EnableAspectJAutoProxy (proxyTargetClass = true) в классе конфигурации и создал класс следующим образом

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Loggable {

}

@Aspect
@Component
public class RequestLogAspect {
private static final Logger LOGGER = LoggerFactory.getLogger(RequestLogAspect.class);

@Around("@annotation(com.buckzy.account.web.logger.Loggable)")
public Object log(final ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
    HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder
            .currentRequestAttributes())
            .getRequest();

    Object value;

    try {
        value = proceedingJoinPoint.proceed();
    } catch (Throwable throwable) {
        throw throwable;
    } finally {
        LOGGER.info(
                "{} {} from {}",
                request.getMethod(),
                request.getRequestURI(),
                request.getRemoteAddr(),
                request.getHeader("user-id"));
    }

    return value;
  }
}

Но всякий раз, когда я вызываю метод контроллера, совет не вызывается. что мне здесь не хватает и как я могу отладить эту проблему?

...