Spring Boot使用拦截器时会遇到静态资源404的坑
@Configuration
public class InterceptorConfig extends WebMvcConfigurationSupport {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new TokenInterceptor())
.addPathPatterns("/api/sign/list")
.addPathPatterns("/api/sign/scan")
.addPathPatterns("/api/trainapply/person/list");
}
}
代码这样写会使Spring Boot不会加载静态资源拦截器,所有我们应该用代码配置Spring Boot的静态资源拦截器,代码:
@Configuration
public class InterceptorConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new TokenInterceptor())
.addPathPatterns("/api/sign/list")
.addPathPatterns("/api/sign/scan")
.addPathPatterns("/api/trainapply/person/list");
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**").addResourceLocations("classpath:/META-INF/resources/")
.addResourceLocations("classpath:/static/");
}
}
我们实现WebMvcConfigurer这个接口就可以同时配置拦截器和静态资源位置,这样就解决了静态资源404的问题