最近在做项目的时候发现interceptor用的继承WebMvcConfigurerAdapter的方式已经过时了,官方推荐的是实现WebMvcConfigurer接口的方式,然而我用此方式并重写了addInterceptors方法后拦截器无效,经过查看源码和论坛提问最终找到了解决方案。
1 实现WebMvcConfigurer接口
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LoginInterceptor())
.addPathPatterns("/admin/**")
.excludePathPatterns("/admin")
.excludePathPatterns("/admin/login");
}
}
2 继承WebMvcConfigurationSupport类
在这里插入代码片@Configuration
public class ApiConfig extends WebMvcConfigurationSupport {
@Override
protected void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LoginInterceptor())
.addPathPatterns("/admin/**")
.excludePathPatterns("/admin")
.excludePathPatterns("/admin/login");
}
}
这样就可以了。