Конфигурация Spring inteceptor не работает должным образом - PullRequest
0 голосов
/ 05 октября 2018

У меня есть перехватчик записи для приложения с пружинной загрузкой.

Класс конфигурации

@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/**");
            }
        };
    }

Кто-нибудь может описать, почему это произошло и как решить эту проблему, будет очень полезно.Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...