跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Javajava

Knife4j 4.5.0 与 Spring Boot 3.x 版本兼容问题解决方案

Knife4j 4.5.0 在 Spring Boot 3.x 环境下运行时,因底层依赖 springdoc-openapi-starter-webmvc-ui 版本不匹配导致 NoSuchMethodError 异常。主要表现为接口文档解析失败、Swagger UI 报错及后端控制台抛出方法不存在错误。解决方案是在父 POM 中显式指定 springdoc-openapi-starter-webmvc-ui 版本为 2.8.9 以覆盖 Knife4j 默认依赖,并在配置文件中将 knife4j.enable 设置为 false 或直接移除该配置项。验证后接口文档及 API 信息可正常访问。

Ne0发布于 2025/10/10更新于 2026/6/821 浏览
Knife4j 4.5.0 与 Spring Boot 3.x 版本兼容问题解决方案

Knife4j 4.5.0 与 Spring Boot 3.x 版本兼容问题解决方案

参考

Knife4j · 集 Swagger2 及 OpenAPI3 为一体的增强解决方案

兼容版本说明

Knife4j 4.5.0

  • 底层依赖 Swagger 兼容版本:springdoc-openapi-starter-webmvc-ui 2.3.0

Spring Boot 3.x.x +

  • 只支持 OpenAPI3 规范

报错内容

Knife4j 异常

访问 http://localhost:8080/doc.html#/home 解析不到内容。

Swagger UI 异常

访问 http://localhost:8080/swagger-ui/index.html 报错提示:Unable to render this definition The provided definition does not specify a valid version field.

JSON 外部工具 api-docs 异常

访问 localhost:8080/v3/api-docs 返回通用统一返回 DTO 格式异常。

{"code": 500, "msg": "Handler dispatch failed: java.lang.NoSuchMethodError: 'java.util.List org.springdoc.core.properties.SpringDocConfigProperties.getGroupConfigs()'", "data": null}

后端控制台异常内容

jakarta.servlet.ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: 'java.util.List org.springdoc.core.properties.SpringDocConfigProperties.getGroupConfigs()' at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1104) ~[spring-webmvc-6.2.8.jar:6.2.8] ...
Caused by: java.lang.NoSuchMethodError: 'java.util.List org.springdoc.core.properties.SpringDocConfigProperties.getGroupConfigs()' at com.github.xiaoymin.knife4j.spring.extension.Knife4jOpenApiCustomizer.addOrderExtension(Knife4jOpenApiCustomizer.java:75) ~[knife4j-openapi3-jakarta-spring-boot-starter-4.5.0.jar:na]

解决兼容问题

调试发现问题

1. 依赖兼容问题

最终调试测试发现,Knife4j 4.5.0 使用的依赖 springdoc-openapi-starter-webmvc-ui 2.3.0 和 Spring Boot 3.x.x 版本不匹配。测试发现 springdoc-openapi-starter-webmvc-ui 2.8.9 适配。

2. Knife4j 配置问题

配置文件中添加 knife4j: enable: true 会导致错误。截至当前版本,不要加这个 enable: true 配置选项,或直接设置为 enable: false。

Maven 依赖覆盖

注意:多模块项目需版本管理覆盖,单模块自行决策。

父 pom.xml
<properties> <!-- knife4j swagger 文档版本 --> <knife4j.version>4.5.0</knife4j.version> <!-- swagger ui 文档版本 --> <springdoc-openapi.version>2.8.9</springdoc-openapi.version> </properties>
<dependencyManagement>
  <dependencies>
    <!-- knife4j swagger -->
    <dependency>
      <groupId>com.github.xiaoymin</groupId>
      <artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
      <version>${knife4j.version}</version>
    </dependency>
    <!-- springdoc (覆盖 knife4j 版本) -->
    <dependency>
      <groupId>org.springdoc</groupId>
      <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
      <version>${springdoc-openapi.version}</version>
    </dependency>
  </dependencies>
</dependencyManagement>
yml 配置文件

enable 先显示设置 false,未来如果版本变化需要显示时就设置 true 即可。

knife4j:
  enable: false
  setting:
    language: zh_cn
刷新 Maven 依赖

验证结果: com.github.xiaoymin:knife4j-openapi3-jakarta-spring-boot-starter:4.5.0 ----> org.springdoc:springdoc-openapi-starter-webmvc-ui:2.8.9

启动项目验证

Knife4j、Swagger UI、api-docs 均可正常访问。

目录

  1. Knife4j 4.5.0 与 Spring Boot 3.x 版本兼容问题解决方案
  2. 参考
  3. 兼容版本说明
  4. Knife4j 4.5.0
  5. Spring Boot 3.x.x +
  6. 报错内容
  7. Knife4j 异常
  8. Swagger UI 异常
  9. JSON 外部工具 api-docs 异常
  10. 后端控制台异常内容
  11. 解决兼容问题
  12. 调试发现问题
  13. 1. 依赖兼容问题
  14. 2. Knife4j 配置问题
  15. Maven 依赖覆盖
  16. 父 pom.xml
  17. yml 配置文件
  18. 刷新 Maven 依赖
  19. 启动项目验证
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 医疗 AI 场景下算法编程深度解析与败血症预测项目总结
  • 人工智能发展历程与现状分析
  • AI 数据标注平台的选型与实践:效率提升背后的技术逻辑
  • VS Code Python 解释器选择报错及受限模式解决方案
  • OpenCode 开源 AI 编程代理技术与行业分析
  • Hibernate 延迟加载机制详解与配置实践
  • 基于 Coze 构建专属 AI 应用:从智能体开发到 Web 部署实战
  • TrendRadar 本地部署:Docker 配置、AI 模型接入与 MCP 服务对接
  • Spring Boot+Vue3 多租户自助门店系统:IoT 硬件集成与无人值守方案
  • 解决 Copilot 与 Codex 修改代码时中文乱码问题
  • MCP 插件配置实战:browser-tools-mcp 集成指南
  • AIGC 个性化与定制化内容生成:技术与应用
  • 2025 年 6 月 GESP 真题及题解 (C++ 七级): 选择题和判断题
  • LangChain 工具调用与结构化输出实战
  • TWIST2 全身 VR 遥操控制系统:基于视觉观测预测人形机器人关节位置
  • C++ 模板基础:泛型编程与函数类模板详解
  • Stable Diffusion 核心生成参数详解
  • 网络运维与网络安全运维的区别及就业前景分析
  • HarmonyOS6 RcImage 组件核心架构与状态管理机制
  • Vue3 组件方法在模板调用失效的原因与解决方案

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online