当前位置: 代码网 > it编程>编程语言>Java > SpringBoot使用SpringDoc+OpenAPI3.0实现接口文档自动生成

SpringBoot使用SpringDoc+OpenAPI3.0实现接口文档自动生成

2026年03月31日 Java 我要评论
在前后端分离项目中,接口文档是刚需。传统手写文档效率低、更新不及时、容易和代码不一致,沟通成本极高。springboot 官方早已放弃旧版springfox(swagger2),转而推荐更轻量、更强大

在前后端分离项目中,接口文档是刚需。
传统手写文档效率低、更新不及时、容易和代码不一致,沟通成本极高。

springboot 官方早已放弃旧版 springfox(swagger2),转而推荐更轻量、更强大的 springdoc + openapi 3.0

今天我们来实现接口文档自动生成、在线调试、权限配置、分组管理、生产环境关闭

一、为什么选 springdoc,而不是 swagger2?

  1. 支持 openapi 3.0 规范
    (最新行业标准)
  2. 兼容 springboot 2.6x / 2.7x / 3.x
    (swagger不兼容高版本boot)
  3. 无侵入、零配置,不污染业务代码
  4. 性能更好、体积更小
  5. 支持 springboot 官方推荐
  6. ui 更美观、调试更方便

二、核心依赖

直接在 pom.xml 添加,无需其他依赖

<dependency>
<groupid>org.springdocgroupid>
<artifactid>springdoc-openapi-uiartifactid>
<version>1.7.0version>
<dependency>

springboot 3.x 用这个:

<dependency>
<groupid>org.springdocgroupid>
<artifactid>springdoc-openapi-starter-webmvc-uiartifactid>
<version>2.2.0version>
<dependency>

三、启动

引入依赖后,什么都不用配!

直接启动项目,访问地址:

http://localhost:8080/swagger-ui.html

就能看到全自动生成的接口文档,支持:

  • 自动扫描所有 controller
  • 自动解析参数、返回值
  • 在线发送请求调试
  • 自动展示实体类字段

四、相关配置

创建配置类 springdocconfig.java,定义文档标题、描述、版本、作者:

importio.swagger.v3.oas.models.openapi;
importio.swagger.v3.oas.models.info.contact;
importio.swagger.v3.oas.models.info.info;
importorg.springframework.context.annotation.bean;
importorg.springframework.context.annotation.configuration;
@configuration
publicclassspringdocconfig{
@bean
publicopenapispringshopopenapi(){
returnnewopenapi()
info(newinfo()
title("springboot 实战项目 api 文档")
description("接口文档自动生成 | 在线调试")
version("v1.0.0")
name("后端开发")
email("developer@demo.com")
)
);
}
}

五、常用注解

springdoc 使用 openapi 3 注解,比 swagger 更简洁。

1. 控制层注解

importio.swagger.v3.oas.annotations.operation;
importio.swagger.v3.oas.annotations.tags.tag;
@restcontroller
@requestmapping("/user")
@tag(name ="用户管理模块", description ="用户增删改查接口")
publicclassusercontroller{
@operation(summary ="根据id查询用户", description ="传入用户id,返回用户详情")
@getmapping("/{id}")
publicresult<user>getuserbyid(@pathvariableinteger id){
returnresult.success();
}
}

2. 实体/参数注解

importio.swagger.v3.oas.annotations.media.schema;
@data
@schema(description ="用户信息实体")
publicclassuser{
@schema(description ="用户id", example ="1001")
privateinteger id;
@schema(description ="用户名", example ="zhangsan")
privatestring username;
}

3. 隐藏接口

@operation(hidden =true)
@getmapping("/test")
publicstringtest(){
return"test";
}

六、application.yml 增强配置

springdoc:
  api-docs:
enabled:true# 是否开启接口文档(生产设为false)
path: /v3/api-docs  # 文档json地址
  swagger-ui:
enabled:true# 是否开启ui页面
path: /swagger-ui.html  # 访问路径
tags-sorter: alpha  # 按字母排序
operations-sorter: alpha  # 接口排序
packages-to-scan: com.demo.controller  # 只扫描controller包

✅ 生产环境务必关闭文档

springdoc.api-docs.enabled=false
springdoc.swagger-ui.enabled=false

七、带 token 权限的接口调试

如果项目有登录认证(token/jwt),配置文档自动带请求头:

@bean
publicopenapiopenapi(){
returnnewopenapi()
.info(newinfo()
title("api文档")
version("v1.0")
)
// 添加全局token请求头
components(newcomponents()
addsecurityschemes("token",
newsecurityscheme()
type(securityscheme.type.apikey)
in(securityscheme.in.header)
name("token")
)
);
}

页面上直接输入 token,所有接口自动携带。

八、接口文档效果

访问:http://localhost:8080/swagger-ui.html

你会看到:

  • 模块分组清晰
  • 接口说明完整
  • 参数自动解析
  • 支持在线调试
  • 返回结构自动展示(result)

学会 springdoc,你再也不用手写接口文档,前后端对接效率直接翻倍!

以上就是springboot使用springdoc+openapi3.0实现接口文档自动生成的详细内容,更多关于springboot接口文档自动生成的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com