Я пытаюсь проверить все запросы в 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;
}
}
Но всякий раз, когда я вызываю метод контроллера, совет не вызывается. что мне здесь не хватает и как я могу отладить эту проблему?