news 2026/9/3 2:21:39

SpringBoot 3.x 整合swagger

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SpringBoot 3.x 整合swagger

目录

一、简介

二、基本使用

1. 引入依赖

2. 其它相关依赖

2. 编写配置文件

3. 配置Swagger文档基本信息

4.?控制 Swagger 的开启

?编辑?5. 完善Swagger文档

5.1 实体类添加Swagger注解

5.2?控制器注解解析

6. 接口调用

三、使用postman进行接口测试

1. 导入链接

四、代码


一、简介

官网:https://swagger.io/

对于SpringBoot而言,Swagger的作用是通过后端SpringBoot代码快速生成接口文档,方便测试接口以及前端使用。

二、基本使用

由于springfox不适用于SpringBoot3.x,故使用Springdoc进行代替。

1. 引入依赖
<dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId> <version>2.6.0</version> </dependency>
2. 其它相关依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- 让响应结果更美观 --> <dependency> <groupId>com.alibaba.cola</groupId> <artifactId>cola-component-dto</artifactId> <version>4.3.2</version> </dependency>
2. 编写配置文件

添加 swagger 的配置文件SwaggerConfig.java

@Configuration public class SwaggerConfig { }

此时Swagger已经简单整合成功,运行SpringBoot服务,浏览器打开网址进行测试

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

我使用的是8081端口,因此我使用下面的链接打开

http://localhost:8081/swagger-ui/index.html

3. 配置Swagger文档基本信息
@Configuration public class SwaggerConfig { /* 配置swagger基本信息 */ @Bean public OpenAPI swaggerOpenApi() { return new OpenAPI() .info(new Info().title("Swagger学习-") .description("Swagger简单入门") .version("v1.0")) .externalDocs(new ExternalDocumentation() .description("我的博客") .url("https://blog.csdn.net/2202_76007821?spm=1000.2115.3001.5343")); } }

此时重新运行服务,打开网址

http://localhost:8081/swagger-ui/index.html

4.控制 Swagger 的开启

在开发或者测试环境下,我们开启 swagger 会方便前端和后端的交互,但是如果在生产环境下也开启 swagger 的话,是会将接口暴露出去的,有极大风险,如何让 swagger 根据不同的环境来决定是否开启?

这里我准备了四个项目的配置文件,devprod两个环境的配置文件仅是端口上的不同

application.yml -------------------------- 全局配置文件
application-dev.yml -------------------- 开发环境配置文件
application-prod.yml -------------------- 生产环境配置文件

application-dev.yml配置

springdoc: api-docs: enabled: true # 开启OpenApi接口 swagger-ui: enabled: true # 开启swagger界面,依赖OpenApi,需要OpenApi同时开启

application-prod.yml配置

springdoc: api-docs: enabled: false # 关闭OpenApi接口 swagger-ui: enabled: false # 关闭swagger界面

application.yml内容如下,用于指定选择的环境:

spring: profiles: active: dev

application.yml全局配置文件中环境指向dev时,是可以打开 swagger 的

如果我将application.yml全局配置文件中环境指向prod时,就不能打开 swagger 了

5. 完善Swagger文档
5.1 实体类添加Swagger注解
@Component @Schema(title = "水果类") public class Fruit { @Schema(title = "水果名称",example = "塔菲新式番茄",minLength = 1,maxLength = 100) private String name; @Schema(title = "水果数量",example = "520") private Integer num ; public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getNum() { return num; } public void setNum(Integer num) { this.num = num; } }

@Schema: Swagger文档的注解,用于说明类/字段

  • title: 类/字段说明
  • example: 示例,Swagger中会将这个字段作为示例
  • minLength/maxLength: 最小/最大长度,字段为String类型时生效(仅用于文档说明,不会抛出异常)
5.2控制器注解解析
@RestController @RequestMapping("/fruit") @Tag(name = "水果控制器",description = "这是水果测试接口") public class FruitController { @PostMapping("/add") @Operation(summary = "新增水果",description = "这是新增水果的方法") public String add(Fruit fruit) { return "新增成功"; } }
  • @Tag: 控制器说明

    • name: 名称
    • description: 描述说明
  • @Operation: 请求说明

    • summary: 说明,Swagger页面在方法后面,不会被折叠
    • descirption: 描述,会被折叠到方法说明中

配置之后,让我们打开网址查看一下

6. 接口调用

点击进行测试

测试成功

三、使用postman进行接口测试

1. 导入链接

回到文档头部,点击api-docs

复制链接

打开postman,点击import

选择第二个进行导入

baseurl问题使用环境进行统一修改即可,点击创建新环境

手动修改参数

点击进行测试

四、代码

代码已经上传到gitee,打开网址,点击下载zip即可

https://gitee.com/guirongyuan/swagger-leaning

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 23:54:06

SpringBean的生命周期

网络上对于spring生命周期的总结很多&#xff0c;对初学者来说看起来眼花缭乱&#xff0c;实际上Spring Bean的生命周期只有四个阶段。把这四个阶段和每个阶段对应的扩展点糅合在一起虽然没有问题&#xff0c;但是这样非常凌乱&#xff0c;难以记忆。要彻底搞清楚Spring的生命周…

作者头像 李华
网站建设 2026/8/31 14:40:23

HY-MT1.5性能优化:GPU资源监控与调优策略

HY-MT1.5性能优化&#xff1a;GPU资源监控与调优策略 随着多语言交流需求的快速增长&#xff0c;高质量、低延迟的翻译模型成为智能应用的核心组件。腾讯开源的混元翻译大模型 HY-MT1.5 系列&#xff0c;凭借其在翻译质量、部署灵活性和功能丰富性上的突出表现&#xff0c;迅速…

作者头像 李华
网站建设 2026/9/3 0:09:56

PDF-Extract-Kit实战案例:智能文档检索系统

PDF-Extract-Kit实战案例&#xff1a;智能文档检索系统 1. 引言 在科研、教育和企业办公场景中&#xff0c;PDF 文档作为知识传递的核心载体&#xff0c;往往包含大量结构化信息——如文字、表格、数学公式和图像。然而&#xff0c;传统方式难以高效提取这些内容并进行二次利…

作者头像 李华
网站建设 2026/9/3 0:08:39

从下载到运行:Proteus Windows安装完整示例

从零开始搭建电路仿真环境&#xff1a;Proteus Windows 安装与首个项目实战指南 你是不是也曾在学习单片机或做课程设计时&#xff0c;被“画错一根线就得重焊一遍”的现实折磨得够呛&#xff1f;有没有想过&#xff0c;在电脑上就能把整个电路连好、程序烧进去、还能用虚拟示…

作者头像 李华
网站建设 2026/9/3 0:09:37

基于TouchGFX的智能温控面板开发实战案例

从零打造专业级智能温控面板&#xff1a;TouchGFX STM32 实战全解析你有没有过这样的体验&#xff1f;家里的空调面板反应迟钝&#xff0c;调个温度要等半秒才动&#xff1b;或者工业设备上的操作屏&#xff0c;界面像十几年前的老家电&#xff0c;按钮生硬、动画卡顿。这些“…

作者头像 李华
网站建设 2026/9/3 0:08:50

混元翻译1.5模型对比:1.8B vs 7B选型指南

混元翻译1.5模型对比&#xff1a;1.8B vs 7B选型指南 随着多语言交流需求的持续增长&#xff0c;高质量、低延迟的机器翻译模型成为智能应用落地的关键基础设施。腾讯开源的混元翻译大模型&#xff08;HY-MT1.5&#xff09;系列在近期发布了两个核心版本&#xff1a;HY-MT1.5-…

作者头像 李华