Springdoc OpenAPI 是 Java 项目中生成 API 文档的主流工具,基于 OpenAPI 3 规范,自动扫描注解、零配置运行,支持 Swagger UI 和 Redoc,兼容 Spring Boot 2.x/3.x 及 Jakarta EE 9+。
Java项目中生成API文档,最常用且与Spring生态集成良好的是 Springdoc OpenAPI(基于 OpenAPI 3 规范),它取代了老一代的 Swagger2,无需侵入代码、零配置即可运行,比 Swagger UI + springfox 更轻量、更稳定。
Springfox(Swagger2)已停止维护,Springdoc OpenAPI 是官方推荐替代方案。它自动扫描 @RestController、@RequestMapping 等注解,实时生成 OpenAPI 3 JSON/YAML,并内置 Swagger UI 和 Redoc 页面。
@Operation、@Parameter、@ApiResponse 等注解可增强文档语义以 Spring Boot 2.7+ 或 3.x 为例,在 pom.xml 中添加:
org.springdoc springdoc-openapi-starter-webmvc-ui2.3.0
若用 Spring Boot 2.x,改用:springdoc-openapi-ui(旧版 starter,如 1.6.14)
启动应用后,默认即可访问:
/swagger-ui.html(Swagger UI 页面)
/v3/api-docs(OpenAPI 3 JSON 格式)
/docs/index.html(Redoc 页面,需额外加 springdoc-openapi-starter-webmvc-ui)
纯自动扫描够用,但要写出专业文档,需补充说明性注解:
@Operation(summary = "用户登录", description = "根据账号密码获取 JWT Token")@Parameter(name = "username", description = "用户名,长度3-20", required = true)@ApiResponse(responseCode =
"200", description = "登录成功,返回 token 对象")@Schema(description = "登录凭证") 注解在 DTO 类或字段上全局配置可写在 application.yml 中:
springdoc:
api-docs:
path: /openapi.json
swagger-ui:
path: /api-docs
doc-expansion: none
theme: fluent开发阶段开箱即用,上线前建议调整:
springdoc.api-docs.enabled=false 或通过 profile 控制@Schema(accessMode = Schema.AccessMode.READ_ONLY) 隐藏字段/v3/api-docs 和静态资源路径基本上就这些。不复杂但容易忽略细节——比如版本匹配、路径冲突、Jakarta 包迁移(Spring Boot 3),配好后文档就活了,改接口、加注释,页面实时更新。