You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot MVC 文件后缀解析异常问题咨询(Boot 2.0.0版本)

Spring Boot中IP路径匹配的406错误问题解决

我之前也碰到过这个Spring Boot版本兼容的坑,给你详细拆解下:

旧版本(2.0.0之前)的可行配置

在Spring Boot 2.0.0版本之前,我们常用下面的@RequestMapping配置来接收带IP地址的请求:

@RequestMapping(method = RequestMethod.GET, value = "/{ipAddress:.+}", produces = MediaType.APPLICATION_JSON_VALUE)

这个配置里的:.+正则是关键,它能让Spring完整匹配IP地址,不会把最后一段(比如.123)当成文件名后缀截断,这种写法在很多技术文章里都被验证过有效。

2.0.0版本的特殊问题

升级到Spring Boot 2.0.0之后,大部分场景下这个配置依然能正常工作,但有个特殊情况会触发406 Not Acceptable错误:当请求的IP地址以.123结尾的时候。这是因为Spring的内容协商机制在这个场景下误把.123当成了一种媒体类型后缀,而我们的接口只返回JSON格式,导致匹配失败抛出406。

临时解决方法

我通过Spring官方文档的提示找到了临时修复方案,核心是关闭路径后缀的内容协商检测,或者调整路径匹配规则。最简单的方式是在配置类中添加如下配置:

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
    @Override
    public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
        // 关闭路径后缀的媒体类型自动检测
        configurer.favorPathExtension(false);
    }
}

这样就能彻底避免Spring把IP的最后一段误判为媒体类型后缀,同时保证IP地址能被完整匹配。

内容的提问来源于stack exchange,提问作者Adrian Smith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:46:17