1. 项目概述
最近在重构一个老项目的API文档系统,决定抛弃传统的Swagger2,直接基于SpringBoot3整合Knife4j。作为一个长期在Java生态中摸爬滚打的开发者,我深刻体会到好的API文档对团队协作的重要性。Knife4j作为Swagger的增强版,不仅保留了OpenAPI规范的标准化优势,还提供了更符合国内开发者习惯的UI界面和实用功能。
这次整合过程中,我发现网上大多数教程还停留在Swagger2的配置方式,对于SpringBoot3+OpenAPI3+Knife4j的组合介绍较少。本文将分享我从零开始整合的全过程,包括依赖选择、配置详解、注解使用技巧以及实际踩坑经验。无论你是刚接触API文档工具的新手,还是准备升级技术栈的老鸟,都能从中获得可直接落地的解决方案。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与依赖配置
2.1 依赖选型考量
在SpringBoot3环境下,我们需要特别注意依赖的兼容性问题。传统Swagger2使用的springfox库已不再维护,而Knife4j提供了对OpenAPI3的原生支持。经过多个项目的验证,我最终选择了以下依赖组合:
xml复制<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
<version>4.4.0</version>
</dependency>
这个starter包的特点在于:
- 内置了springdoc-openapi的Java17+支持
- 适配Jakarta EE规范(SpringBoot3的默认选择)
- 自动配置Knife4j增强功能,无需额外引入UI包
注意:如果你的项目还在使用Java8或Javax规范,需要选择对应的老版本依赖,但这会失去对SpringBoot3的完整支持。
2.2 基础配置模板
在application.yml中,我提炼出了最精简有效的配置模板:
yaml复制springdoc:
swagger-ui:
path: /swagger-ui.html
tags-sorter:
