跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具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/9/1082 浏览
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. 启动项目验证

更多推荐文章

查看全部
  • SpringBoot+Vue 智能推荐卫生健康系统平台设计与实现
  • AI 图像生成指南:从原理到实战
  • 快速排序核心原理与多版本实现详解
  • 前端直连大模型实战指南与最佳实践
  • 二叉树深度优先搜索算法及经典例题解析
  • Python AI 开发环境搭建:Anaconda + PyCharm + Claude Code 配置教程
  • RPA 软件下载安装与开发者账号申请指南
  • 小狼毫输入法配置指南:拼音、五笔、注音方案设置
  • ERNIE-4.5-0.3B 轻量模型部署指南与性能测评
  • Node.js v22.14.0 跨平台安装实战:Windows、macOS 与 Linux
  • Python 基础语法练习题
  • AI、AGI、AIGC、NLP、LLM 与 ChatGPT 核心概念解析
  • 基于 Termux 在安卓手机部署 AstrBot 及 NapCat 搭建 QQ 机器人
  • 二叉树前中后序遍历详解:递归与迭代实现
  • Spring Boot 集成 Nacos 注册中心配置指南
  • Mosquitto 安装与配置教程:支持 JavaScript 网页 WebSocket 连接
  • CosyVoice3 支持 ARPAbet 音素标注,提升英文发音准确性
  • AI 辅助前端设计工作流:独立完成产品从原型到代码的全流程
  • 深入理解 Kafka:核心架构、特性与运维实践
  • 大模型技术学习路径指南:理论、实践与应用

相关免费在线工具

  • 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