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

SpringDoc 基本使用指南

SpringDoc 是基于 Spring Boot 的现代化 API 文档生成工具,通过自动化扫描代码和注解,生成符合 OpenAPI 3.0+ 规范的交互式文档,并集成 Swagger UI 提供可视化测试界面。核心特性包括开箱即用、注解驱动、动态兼容性(适配 Spring Boot 2.6+ 及 3.x)及多格式输出。集成需引入依赖、配置 application.yml 及可选全局配置类。常用注解涵盖@Tag、@Operation、@Parameter 和@Schema,分别用于控制器、接口方法、参数及模型属性的描述,支持按模块划分接口分组。

心动瞬间发布于 2026/3/28更新于 2026/10/25102 浏览
SpringDoc 基本使用指南

SpringDoc 是基于 Spring Boot 的现代化 API 文档生成工具,通过自动化扫描代码和注解,生成符合 OpenAPI 3.0+ 规范 的交互式文档,并集成 Swagger UI 提供可视化测试界面。以下是其核心详解:

核心特性与优势

  • 开箱即用仅需添加依赖,无需复杂配置即可自动生成文档,支持 Spring WebMvc、WebFlux、Spring Security 及 Jakarta EE。
  • 注解驱动使用 JSR-303 规范注解(如 @Tag、@Operation)替代 SpringFox 专属注解,降低学习成本。
  • 动态兼容性完美适配 Spring Boot 2.6+ 及 3.x(含 JDK 17+),解决 SpringFox 因停维护导致的不兼容问题。
  • 多格式输出支持 JSON/YAML/HTML 格式文档,并提供分组功能,可按模块划分接口(如公开 API 与内部 API)。

集成与配置

全局信息配置类(可选)

@Configuration
@OpenAPIDefinition(
    info = @Info(title = "项目 API 文档", version = "1.0", description = "SpringBoot 接口文档")
)
public class SpringDocConfig {
    // 无需额外代码
}

基础配置(application.yml)

springdoc:
  swagger-ui:
    enabled: true
    path: /swagger-ui.html
    tags-sorter: alpha
    operations-sorter: alpha
    persistAuthorization: true
    disable-swagger-default-url: true
  api-docs:
    enabled: true
    path: /v3/api-docs
    default-consumes-media-type: application/json
    default-produces-media-type: application/json
  cache:
     
     
    
    
     
   
disabled:
false
show-actuator:
false
# 推荐保持默认,显示结构化参数
# default-flat-param-object: true
override-with-generic-response:
false
model-and-view-allowed:
true

依赖引入(Spring Boot 3.x)

<dependency>
    <groupId>org.springdoc</groupId>
    <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
    <version>2.5.0</version>
</dependency>

注解使用

常用注解

场景SpringDoc 注解示例
控制器描述@Tag(name="模块",)@Tag(name="用户管理", description="用户 CRUD")
接口方法描述@Operation(summary="",)@Operation(summary="创建用户", description="需管理员权限")
参数描述@Parameter(description="")@Parameter(description="用户 ID", required=true)
模型属性描述@Schema(description="")@Schema(description = "用户名称")

目录

  1. 核心特性与优势
  2. 集成与配置
  3. 注解使用
  4. 常用注解

更多推荐文章

查看全部
  • 大模型实战:深入解析 LLaMA 核心算子 RMSNorm 开发
  • 分治算法实战:归并排序与数组逆序对详解
  • ZYNQ PS-PL 架构解析:ARM 与 FPGA 融合设计及通信机制
  • 生成式 AI 与大语言模型(LLM)原理简明教程
  • Visual C++ Redistributable 运行库安装与故障排查指南
  • 智能车竞赛惯导与视觉避障思路分享
  • 大模型领域热门岗位解析与求职指南
  • 从 3D 打印到步态学习:宇树 Qmini 双足机器人开源实战
  • Linux 定时更新 Git 仓库脚本方案
  • 向量数据库与 RAG 应用架构解析(上)
  • AI 时代为何仍需深入学习 SpringBoot
  • Neo4j 图数据库安装与操作指南 (Mac 版)
  • Mac mini 部署 OpenClaw 网关指南
  • C++ 初阶:命名空间、输入输出、缺省参数与函数重载
  • C# 命令行参数与条件判断实战
  • 鸿蒙 ArkUI 组件复用指南:@Reusable 装饰器与 NodePool 方案
  • 快速选择算法实战:第 K 大元素与最小 K 个数
  • 小厂架构师实战:AI Agent 辅助 Bug 定位与修复
  • 英伟达与 GitHub 免费获取大模型 API Key 方法指南
  • Java 实体类为何不建议使用 is 前缀命名?以 is_deleted 为例

相关免费在线工具

  • 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