拦截器不生效的问题处理
拦截器没有注册到容器中,不能被容器管理
主要由以下两个步骤:
-
自定义拦截器类实现
HandlerInterceptor
接口 -
自定义WebMvc配置类实现
WebMvcConfigurer
接口,添加自定义拦截器类
主要是第二步缺少。
第一步:
自定义拦截器 UserInterceptor: public class UserInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { String token = request.getHeader("token"); if(StringUtils.isEmpty(token)){ ... return false; } return true; } }
第二步:
配置自定义拦截器: @Configuration public class WebConfiguration implements WebMvcConfigurer {
@Bean
private UserInterceptor userInterceptor;
@Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(userInterceptor) // 拦截的请求 .addPathPatterns("/**") // 不用拦截的请求 .excludePathPatterns("/login"); } }
补上第二步即可