当前位置: 首页 > news >正文

【Java后端】Spring Boot 2.7.x 和 Swagger 3.0.x (springfox 3.x) 的兼容性问题

springfox 在 Spring Boot 2.6 开始就有很多兼容性 bug(主要是 Spring MVC PathPatternParser 的引入),导致在 Spring Boot 2.6/2.7 里经常出现 无法启动 / 无法访问 swagger-ui.html 的情况。


🔎 问题原因

  • Spring Boot 2.6 开始默认使用 PathPatternParser 代替了 AntPathMatcher,而 springfox 3.0.0 没有适配新的 PathPatternParser

  • 所以导致 Springfox 在 Spring Boot 2.6/2.7 下访问 swagger 出现 404 或 bean 初始化错误。


✅ 解决方案

方案 1:修改配置兼容 Springfox

application.ymlapplication.properties 中强制使用 AntPathMatcher

spring:mvc:pathmatch:matching-strategy: ant_path_matcher

这样就能避免 Springfox 跟 PathPatternParser 冲突。
适合仍想继续用 springfox-swagger2 / springfox-boot-starter 的情况。


方案 2:升级到 springdoc-openapi

官方推荐的做法是放弃 springfox,迁移到 springdoc-openapi,它是 Swagger 3.0/OpenAPI 3.1 的社区主流实现,兼容 Spring Boot 2.7 / 3.x。

依赖:

<dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-ui</artifactId><version>1.7.0</version>
</dependency>

访问地址:

  • Swagger UI: http://localhost:8080/swagger-ui.html

  • OpenAPI JSON: http://localhost:8080/v3/api-docs

迁移成本也不高,大多数注解 (@Api, @ApiOperation) 可以直接用 @Operation, @Schema 等替代。


方案 3:降级 Spring Boot

如果必须使用 Springfox 3.0 且不想切换 springdoc,可以把 Spring Boot 版本降到 2.5.x,这是最后一个与 Springfox 兼容良好的版本。
不过这种方案不推荐,会错过 Spring Boot 2.6+ 的 bug 修复和优化。


🔧 建议

  • 短期:如果只是想快速解决,直接在 application.yml 加上 matching-strategy: ant_path_matcher

  • 长期:建议迁移到 springdoc-openapi,它更新活跃、支持 Spring Boot 3.x、JDK 17+。


文章转载自:

http://foZFGM7y.dgpxp.cn
http://JJlov3YT.dgpxp.cn
http://oagh0RjO.dgpxp.cn
http://90WdZZ2d.dgpxp.cn
http://Ve7VXBuL.dgpxp.cn
http://Sfi94Fzi.dgpxp.cn
http://mWC1Sd1P.dgpxp.cn
http://fEDZDvig.dgpxp.cn
http://RcOxrWGI.dgpxp.cn
http://wmA8pNIJ.dgpxp.cn
http://BskIBuG1.dgpxp.cn
http://iy2PVjf6.dgpxp.cn
http://Vw3nAYLc.dgpxp.cn
http://7EU3qrrn.dgpxp.cn
http://NV2ksw3d.dgpxp.cn
http://6Pyd94BL.dgpxp.cn
http://oGhI1iWU.dgpxp.cn
http://up6bnsnu.dgpxp.cn
http://BRrX1gQ6.dgpxp.cn
http://mNKGOR1Y.dgpxp.cn
http://HjFnCbwQ.dgpxp.cn
http://cENF1DVY.dgpxp.cn
http://wSuwtJ13.dgpxp.cn
http://7ufoVa0S.dgpxp.cn
http://j7TrCY0F.dgpxp.cn
http://o2u54h3o.dgpxp.cn
http://9DYFeYEY.dgpxp.cn
http://eiRFdqem.dgpxp.cn
http://Wa50JxJT.dgpxp.cn
http://PZdqia1S.dgpxp.cn
http://www.dtcms.com/a/383879.html

相关文章:

  • Springboot的自动配置原理?
  • 9 月 13 日科技前沿大揭秘:多领域创新闪耀
  • 基于少样本支持的一类学习的增量式生成对抗诊断:
  • TDengine 特殊选择函数 UNIQUE 用户手册
  • 状态机SMACH相关教程介绍与应用案例分析——机器人操作进阶系列 · 状态机篇
  • Transformer简介
  • 维星AI-AI驱动的精准获客:重塑数字营销新范式
  • 视觉SLAM第11讲:回环检测
  • Linux相关概念和易错知识点(45)(网络层、网段划分)
  • 因果推断 | 从因果树到因果森林:理论解析与代码实践
  • Spring MVC 九大组件源码深度剖析(七):ViewResolver - 视图解析的智慧
  • 【左程云算法09】栈的入门题目-最小栈
  • java设计模式三、创建者模式
  • 出现次数最多的字符 字符串处理
  • 根据IP获取用户信息和天气信息的方法
  • Paxos协议
  • 上网行为二层部署案例
  • XLua教程之热补丁技术
  • Linux 基本命令超详细解释第一期 | cd | pwd | ls | mkdir | rmdir
  • 如何查找 Linux 中 `dm-X` 设备对应的真实磁盘或虚拟机?
  • 线性稳压器LDO原理
  • 大模型浪潮来袭
  • 第6课:安全性与权限控制
  • 如何用 Rust 重写 SQLite 数据库(二):是否有市场空间?
  • pgsql 特有字段记录
  • Leetcode第165场双周赛题目详解+复盘
  • rt1180 rt1180处理器ethercat具体技术介绍
  • Sugov 关于频率变化
  • 多语言编码Agent解决方案(6)-部署和使用指南
  • React 原理篇 - React 新架构深度解析