В следующей настройке перехватчик TimingInterceptor и CORSHeaders выполняется во всех запросах URL-адресов, за исключением URL-адресов/resources/**. Как заставить перехватчики работать для/resources/** URL-адресов, обслуживаемых ResourceHttpRequestHandler?Spring MVC Interceptor не выполняет для URL-адреса обработчика ресурсов
@EnableWebMvc //equivalent to mvc:annotation-driven
@Configuration
@PropertySource("classpath:configuration.properties")
public class WebConfig extends WebMvcConfigurerAdapter {
@Inject
private TimingInterceptor timingInterceptor;
@Inject
private CORSHeaders corsHeaders;
// equivalent to mvc:resources
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
}
// equivalent to mvc:interceptors
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(timingInterceptor).addPathPatterns("/**");
registry.addInterceptor(corsHeaders).addPathPatterns("/**");
}
}
Да, я думаю, вы правы. Я попробовал добавить MappedInterceptor, как вы уже сказали, но метод не вызывается, и перехватчик не добавляется в контекст. – tukushan
Я создал простой пример для этого: https://github.com/spring-projects/spring-framework-issues/tree/master/SPR-10655 - можете ли вы взглянуть на него? Если вы придумали репродублированный проект с возможной ошибкой, просто откройте JIRA-проблему на http://jira.spring.io –
@BrianClozel использует '@ EnableWebMvc' и' WebMvcConfigurerAdapter' вместе рекомендуемые? В [документе] (http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-spring-mvc-auto-configuration) говорится об обратном. Или я чего-то не хватает? –