springboot: 配置消息转换器后,拦截器无效,出现No mapping for GET xxx
创始人
2025-05-31 13:44:06
0

问题描述

  • 项目开发之前使用拦截器对controller的访问进行拦截,一切功能正常。今天在项目中加入消息转换器后,发现无论访问什么网页,都是404错误,No mapping for GET xxx
    在这里插入图片描述

问题分析

  • 出现的错误很像是拦截器没有配置对导致的,通过注释WebMvcConfigMsgConverter消息转换器后,发现项目和原理一样能够正常运行,初步怀疑是拦截器和消息转换器发生了冲突。
  • 由于消息转换器中:将消息转换器对象追加到mvc框架的转换器集合中converters.add(0,messageConverter);这里设置了一个优先级0,表示在所有配置之前生效当前配置,优先级最高,于是怀疑是当前消息转换器的执行后就不再执行拦截器。
  • 将两个配置文件整合到一起,发现奇怪的错误,即满足单继承,又实现了接口,idea提示我们要重写很多方法,但是单独实现接口是不用重写这些default方法的。

解决方案

  • 查找资料发现在 SpringBoot 2.0 后,官方推荐直接实现WebMvcConfigurer或者直接继承WebMvcConfigurationSupport,方式一实现WebMvcConfigurer接口(推荐),方式二继承WebMvcConfigurationSupport类。其实使用其中一种方法就可以完成对应的功能!这里使用实现接口的方法!
@Slf4j
@Configuration
public class BackendWebMvcConfig implements WebMvcConfigurer {@Overridepublic void extendMessageConverters(List> converters) {log.info("拓展消息转换器成功加载");//创建消息转换器对象MappingJackson2HttpMessageConverter messageConverter = new MappingJackson2HttpMessageConverter();//设置对象转换器,底层使用Jackson将Java对象转为jsonmessageConverter.setObjectMapper(new JacksonObjectMapper());//将上面的消息转换器对象追加到mvc框架的转换器集合中converters.add(0,messageConverter);}@Overridepublic void addInterceptors(InterceptorRegistry registry) {//重写方法,添加拦截器方法registry.addInterceptor(loginInterceptor())//拦截哪些路径.addPathPatterns("/**")//不拦截路径.excludePathPatterns("/employee/backend/page/login/login.do","/backend/**","/employee/backend/page/login/logout.do","/front/**","/error");}@Beanpublic LoginInterceptor loginInterceptor(){return new LoginInterceptor();}}

成功解决问题!
在这里插入图片描述

相关内容

热门资讯

“男子持刀入室盗窃”视频引发关... 近日,一段疑似“小偷”入室盗窃被业主家中监控拍下的视频在网上引发关注。11月21日晚,“翠屏公安”微...
绝不允许日本军国主义幽灵复活!... 2025年11月7日,日本首相高市早苗宣称,如果中国大陆对台湾出动军舰并使用武力,可能会构成“存亡危...
【解决】AI法律助手荣获202... 2025全球数字经济大会启幕,搭建国际数字合作高端平台 经国务院批准,由北京市人民政府、国家互联网信...
嘉兴男子与妻争吵,突然将行李箱... 近日,浙江嘉兴一对夫妻因琐事发生争吵,丈夫突然将装满衣物的行李箱从6楼扔到楼下,引发关注。11月22...
三地107家律所齐聚丰台,京津... 11月22日,京津冀律师驿站举办“党建业务深度融合 促进行业规范发展”主题活动,发布“百千万行动计划...
家装预付资金安全困局如何破解,... 家装预付资金安全困局如何破解 专家提出:建立“先验收后付款”装修资金存管制度 预交数万元甚至数十万元...
工行安康解放路支行积极开展《反... 为深入贯彻落实《国家金融监督管理总局安康监管分局办公室关于开展<反有组织犯罪法>宣传活动的通知》要求...
重庆公布育儿补贴制度实施方案 原标题:每孩每年3600元 重庆公布育儿补贴制度实施方案 11月21日,记者了解到,市卫生健康委、市...
十五运会组委会在深总结本届赛事... 深圳新闻网2025年11月22日讯(深圳报业集团记者 林炜航)11月21日,十五运会组委会在深圳市民...