Java 中怎么用 Swagger 或 Knife4j 生成接口文档

风磊小哥_5995

风磊小哥_5995

2026-10-02

725人浏览

原创

推荐新项目使用knife4j集成swagger 3,需引入springdoc-openapi与knife4j依赖,启动后访问/doc.html;接口需添加@operation等openapi注解;生产环境须禁用文档页面。

java 中怎么用 swagger 或 knife4j 生成接口文档

Java 项目中用 Swagger 或 Knife4j 生成接口文档,核心是引入依赖、配置扫描、启动服务后访问对应 UI 页面。Knife4j 是 Swagger 的增强版,界面更友好、功能更丰富(如离线文档导出、调试增强),推荐新项目直接用 Knife4j。

1. Spring Boot 项目集成 Knife4j(推荐)

Knife4j 基于 Swagger 3(即 springdoc-openapi),适用于 Spring Boot 2.6+ 和 Spring Boot 3.x。

  • 添加 Maven 依赖(以 Spring Boot 3.x 为例):

  org.springdoc
  springdoc-openapi-starter-webmvc-api
  2.3.0


  com.github.xiaoymin
  knife4j-openapi3-jakarta-spring-boot-starter
  4.4.0
  • 无需额外 Java 配置类,自动生效;如需自定义(如分组、标题),可加 @Bean 配置 OpenAPI 对象
  • 启动项目后,访问 http://localhost:8080/doc.html 即可打开 Knife4j UI(注意不是 /swagger-ui.html)
  • 接口会自动识别 @RestController + @Operation(来自 io.swagger.v3.oas.annotations)等注解

2. 给接口添加说明注解(让文档更清晰)

光有依赖只能看到基础路径和参数,要写出可读性强的文档,需在 Controller 方法上补充 OpenAPI 标准注解:

Java Maven Code Review
Java Maven Code Review

审查Java Maven项目(ZIP压缩包或GitLab仓库URL),检查代码规范、命名、模块边界、可维护性问题以及重复代码。

下载
  • @Operation(summary = "用户登录", description = "根据手机号和密码获取 token")
  • @Parameter(name = "loginDTO", description = "登录请求体", required = true)(用于 @RequestBody)
  • @ApiResponse(responseCode = "200", description = "登录成功", content = @Content(schema = @Schema(implementation = Result.class)))
  • 实体类字段可用 @Schema(description = "用户昵称") 注解增强说明

3. Swagger 2(旧版,仅兼容老项目)

若项目仍在用 Spring Boot 2.1–2.5 且基于 springfox-swagger2,则走传统 Swagger 2 路线:

  • 引入 springfox-swagger2 和 springfox-swagger-ui(注意版本对齐,如 2.9.2)
  • 写一个 @Configuration 类,用 Docket 配置 API 扫描包、分组、基本信息
  • 访问 http://localhost:8080/swagger-ui.html
  • ⚠️ 注意:Swagger 2 不支持 Spring Boot 2.6+(因 Spring 默认禁用 Spring MVC path matching 的 ant-style),强行使用需降级或改配置,不建议新项目采用

4. 生产环境注意事项

文档页面不能暴露在生产环境,需按环境控制开关:

  • Knife4j:在 application-prod.yml 中关闭
knife4j:
  enable: false
  • Swagger 3(springdoc):通过 springdoc.api-docs.enabled=false 和 springdoc.swagger-ui.enabled=false 双重关闭
  • 还可结合 Profile,在非 dev/test 环境跳过 Knife4j 的 starter 自动配置

Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

java

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
java
java

Java是一个通用术语,用于表示Java软件及其组件,包括“Java运行时环境 (JRE)”、“Java虚拟机 (JVM)”以及“插件”。php中文网还为大家带了Java相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

2023.06.15

9517

6

java正则表达式语法
java正则表达式语法

java正则表达式语法是一种模式匹配工具,它非常有用,可以在处理文本和字符串时快速地查找、替换、验证和提取特定的模式和数据。本专题提供java正则表达式语法的相关文章、下载和专题,供大家免费下载体验。

2023.07.05

6662

9

java自学难吗
java自学难吗

Java自学并不难。Java语言相对于其他一些编程语言而言,有着较为简洁和易读的语法,本专题为大家提供java自学难吗相关的文章,大家可以免费体验。

2023.07.31

5932

8

java配置jdk环境变量
java配置jdk环境变量

Java是一种广泛使用的高级编程语言,用于开发各种类型的应用程序。为了能够在计算机上正确运行和编译Java代码,需要正确配置Java Development Kit(JDK)环境变量。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.08.01

1044

3

java保留两位小数
java保留两位小数

Java是一种广泛应用于编程领域的高级编程语言。在Java中,保留两位小数是指在进行数值计算或输出时,限制小数部分只有两位有效数字,并将多余的位数进行四舍五入或截取。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.08.02

868

3

java基本数据类型
java基本数据类型

java基本数据类型有:1、byte;2、short;3、int;4、long;5、float;6、double;7、char;8、boolean。本专题为大家提供java基本数据类型的相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.02

1236

5

java有什么用
java有什么用

java可以开发应用程序、移动应用、Web应用、企业级应用、嵌入式系统等方面。本专题为大家提供java有什么用的相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.02

2489

5

java在线网站
java在线网站

Java在线网站是指提供Java编程学习、实践和交流平台的网络服务。近年来,随着Java语言在软件开发领域的广泛应用,越来越多的人对Java编程感兴趣,并希望能够通过在线网站来学习和提高自己的Java编程技能。php中文网给大家带来了相关的视频、教程以及文章,欢迎大家前来学习阅读和下载。

2023.08.03

19831

3

配置java环境变量
配置java环境变量

配置Java环境变量是为了让操作系统能够识别和使用Java的相关命令和功能。本专题为大家提供配置java环境变量相关文章,帮助大家解决问题。

2023.08.03

1135

8

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
dev.java 官方:Learn Java
dev.java 官方:Learn Java

共0课时 | 0人学习

Java JDBC数据库连接官方教程
Java JDBC数据库连接官方教程

共0课时 | 0人学习