说下我的原因,因为不熟悉拦截器,所以一开始以为一个拦截器要对应一个WebMvcConfigurer配置类所以写了两个配置类,自然也就重写了两次addInterceptors方法。导致只有第一个拦截器生效,后面的没有用。
其实只有第一个配置类会生效,后面的都没用,所以不管写了几个拦截器,只要注入到一个配置类中,根据顺序调用即可。
@Configuration
public class MvcConfigurer implements WebMvcConfigurer {
@Resource
private AdminInterceptor adminInterceptor;
@Resource
private FirmInterceptor firmInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
/**
* 拦截器按照顺序执行
*addPathPatterns 用于添加拦截规则
*excludePathPatterns 用于排除拦截
*/
registry.addInterceptor(adminInterceptor).addPathPatterns("/ad/**").excludePathPatterns("/ad/public/**");
registry.addInterceptor(firmInterceptor).addPathPatterns("/fm/**").excludePathPatterns("/fm/**/public/**");
}
}