原来拦截器只在配置文件中配置了白名单,如下,excludePathPatterns中配置的为白名单。
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(urlHandlerInterceptor)
.addPathPatterns("**")
.excludePathPatterns(excludePathPatterns);
}
和前端联调发现html,js,css请求都被拦截了,增加对静态文件的忽略。因为默认都在resource包下存放静态文件,而这次是将静态文件放在webapp下,所以增加如下内容:
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry){
registry.addResourceHandler("/frms/**") .
addResourceLocations("classpath:../webapp/web/");
}
注意的是
.addPathPatterns("**")会放过静态文件,如果是
.addPathPatterns("/**")则会拦截静态文件
20190925更新
发现 .addPathPatterns("**")使拦截器失效了,改回来就生效,最后发现springboot貌似不支持自定义目录。
所以在resources下新建了static目录,发现成功。最后代码如下:
@Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(urlHandlerInterceptor) .addPathPatterns("/**") .excludePathPatterns("/web/**") .excludePathPatterns(excludePathPatterns); } @Override public void addResourceHandlers(ResourceHandlerRegistry registry){ registry.addResourceHandler("/frms/web/**") .addResourceLocations("classpath:/static/frms/web/","classpath:/static/web/styles/**"); }