Невозможно добавить экземпляр HandleInterceptorAdapter

Я пытаюсь перехватить каждый HTTP-запрос, поступающий в мое приложение Spring Boot. Для этого у меня есть LoggingInterceptor следующим образом:

@Component
public class LoggingInterceptor extends HandlerInterceptorAdapter {

private static final Logger logger = LoggerFactory.getLogger(LoggingInterceptor.class);

public LoggingInterceptor() {
    super();
    logger.debug("LoggingInteceptor constructor");
}
@Override
public boolean preHandle(HttpServletRequest request,
        HttpServletResponse response, Object handler) throws Exception {
    logger.debug("LoggingInteceptor: Intercepted  " + request.getRequestURI());
            return true;

}

}

Затем у меня есть класс @Configuration для добавления перехватчика в реестр следующим образом:

@EnableWebMvc
@Configuration
public class LoggingConfig extends WebMvcConfigurerAdapter {
@Autowired
LoggingInterceptor loggingInterceptor;

public void addInterceptors(InterceptorRegistry registry){
    registry.addInterceptor(loggingInterceptor);
}

}

Тем не менее, я просто не вижу ни одного из операторов журнала. Есть ли что-то еще, что мне нужно сделать, чтобы это произошло?

1 ответ

Ваша конфигурация выглядит хорошо. Также registry.addInterceptor(loggingInterceptor); вызов завершится неудачно, если перехватчик будет нулевым, поэтому он, кажется, правильно подключен.

Поэтому я бы проверил:

  1. если уровень DEBUG нам разрешен в рамках логирования
  2. Если оба класса вообще включены в ваш контекст Spring (установите метод точки останова addInterceptors и запустите приложение)

РЕДАКТИРОВАТЬ:

ОК, поэтому комментарий подтвердил, что ваша проблема - мой первый пункт. Вам нужно найти файл конфигурации ведения журнала (например, log4j.properties, log4j,xml или logback.xml) и изменить там уровень журнала с INFO на DEBUG.

Другие вопросы по тегам