拦截器不生效的问题处理

拦截器没有注册到容器中,不能被容器管理

 

主要由以下两个步骤:

  1. 自定义拦截器类实现HandlerInterceptor接口

  2. 自定义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");
    }
}

补上第二步即可

 

posted @ 2024-03-25 10:46  ジ绯色月下ぎ  阅读(360)  评论(0编辑  收藏  举报