У меня есть перехватчик записи для приложения с пружинной загрузкой.
Класс конфигурации
@SpringBootApplication(scanBasePackages={"com.epic"})
public class ApiConfig extends SpringBootServletInitializer{
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(ApiConfig.class);
}
public static void main(String[] args) {
SpringApplication.run(ApiConfig.class, args);
}
@Bean
public WebMvcConfigurerAdapter adapter() {
return new WebMvcConfigurerAdapter() {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(getIbRestInterceptor()).addPathPatterns("/**");
}
};
}
@Bean
public IbRestInterceptor getIbRestInterceptor() {
return new IbRestInterceptor();
}
}
Класс перехватчика
public class IbRestInterceptor implements HandlerInterceptor {
final static Logger logger = Logger.getLogger(IbRestInterceptor.class);
@Override
public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
try{
System.out.println("----pre handle----");
}catch(Exception e){
logger.error("Interceptor perHandle Exception : " , e);
}
return true;
}
@Override
public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
try{
System.out.println("----post handle----");
}catch(Exception e){
logger.error("Interceptor postHandle Exception : " , e);
}
}
@Override
public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {}
}
Файл вышеуказанных классов работает.
Когда я изменил класс конфигурации addPathPatterns, как показано ниже. Запросы не проходят через класс-перехватчик.
Пример - http://localhost:8080/IB_REST/test/
@Bean
public WebMvcConfigurerAdapter adapter() {
return new WebMvcConfigurerAdapter() {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(getIbRestInterceptor()).addPathPatterns("/IB_REST/**");
}
};
}
Кто-нибудь может описать, почему это произошло и как решить эту проблему, будет очень полезно.Заранее спасибо.