spring boot 拦截器HandlerInterceptor 不生效的原因排查

java 复制代码
public class UserInterceptor implements HandlerInterceptor

项目添加一个拦截器,发现未生效

1、排查拦截本身是否注入了springbean 容器

java 复制代码
@Slf4j
@Component
public class LoginInterceptor implements HandlerInterceptor {

2、排查springboot 项目扫描范围是否包含了拦截器所在目录

3、排查拦截器是否注册成功

两种注册方式相互排斥

如果同时配置一个类继承WebMvcConfigurationSupport和一个类实现

WebMvcConfigurer或者WebMvcConfigurerAdapter,就会导致只有一个生效。解决办法:将这些配置都在一个类中设置

这里全局搜索WebMvcConfigurer

和WebMvcConfigurationSuppor

发现项目中已经有了

bash 复制代码
@Configuration
public class FastJsonConfig extends WebMvcConfigurationSupport 

在这里增添

bash 复制代码
@Override
  public void addInterceptors(InterceptorRegistry registry) {

    List<String> excluded=new ArrayList<>();
    excluded.add("/pc/getUserInfoByCode");
    excluded.add("pc/login");
    registry.addInterceptor(loginInterceptor)
            .addPathPatterns("/**")
            .excludePathPatterns(excluded);
    super.addInterceptors(registry);
  }

然后打断点,发现项目启动的时候拦截器注册成功,接下来可以正常拿用户登录信息了

相关推荐
葫芦和十三6 小时前
图解 MongoDB 05|文档模型设计:内嵌 vs 引用,反范式不是免费午餐
后端·mongodb·agent
不能放弃治疗10 小时前
单 Agent 实现模式
后端
IT_陈寒12 小时前
Redis内存爆了,原来我漏掉了这个致命配置
前端·人工智能·后端
小bo波12 小时前
从"任意文件复制"深挖Java I/O:字符流与字节流的本质抉择
java·nio·io流·后端开发·文件复制
fliter13 小时前
最后一块拼图:用 bitvec 构造 IPv4 包,真正做出自己的 Ping
后端
用户35218024547514 小时前
🎆从 Prompt 到 Skill:让 Spring AI Agent 学会"装新技能"
人工智能·spring boot·ai编程
fliter14 小时前
用 Rust 解析并生成 ICMP 包:checksum、nom 与 cookie-factory
后端
蝎子莱莱爱打怪14 小时前
XZLL-IM干货系列 03|消息 ID 设计:一个 UUID 搞不定的事,我用两个 ID 解决了
后端·面试·开源
fliter14 小时前
从 panic 到 Result:用 Rust 重新整理一个 ping 项目的错误处理
后端
森蓝情丶14 小时前
我给 AI 搭了个法庭:一个前端仔的 LangGraph 实战全记录
前端·后端