news 2026/4/30 22:22:53

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/4/23 15:48:30

SpringBoot 3.4.x踩坑记录及解决方案(持续更新)

废话 最近使用JDK17Spring Boot3.4.0 做新项目遇到的一些坑&#xff0c;记录并且给出一些实际的解决方案 一、集成Mybatis Plus 3.5.9的问题 第一&#xff1a;不能只引入mybatis-plus-spring-boot3-starter依赖了&#xff0c;需要配合mybatis-plus-jsqlparser <dependenc…

作者头像 李华
网站建设 2026/4/18 19:11:44

PDF-Extract-Kit OCR优化:低质量扫描件识别

PDF-Extract-Kit OCR优化&#xff1a;低质量扫描件识别 1. 引言&#xff1a;挑战与需求背景 在实际文档数字化过程中&#xff0c;我们经常面临一个普遍而棘手的问题——低质量扫描件的文本提取准确率低下。这类文档通常来源于老旧设备扫描、纸质文件褪色、光照不均或压缩过度…

作者头像 李华
网站建设 2026/4/22 6:51:40

科哥PDF工具箱教程:自动化脚本批量处理PDF

科哥PDF工具箱教程&#xff1a;自动化脚本批量处理PDF 1. 引言 1.1 PDF-Extract-Kit&#xff1a;智能提取的工程化实践 在科研、教育和文档数字化场景中&#xff0c;PDF 文件常包含复杂的结构元素——公式、表格、图文混排等。传统手动提取方式效率低、易出错&#xff0c;难…

作者头像 李华
网站建设 2026/4/29 17:41:48

Spring 的三种注入方式?

1. 实例的注入方式 首先来看看 Spring 中的实例该如何注入&#xff0c;总结起来&#xff0c;无非三种&#xff1a;属性注入set 方法注入构造方法注入我们分别来看下。 1.1 属性注入 属性注入是大家最为常见也是使用最多的一种注入方式了&#xff0c;代码如下&#xff1a; Servi…

作者头像 李华
网站建设 2026/4/27 14:23:09

基于深度学习 YOLOv8➕pyqt5的西红柿成熟度检测系统

基于深度学习 YOLOv8➕pyqt5的西红柿成熟度检测系统&#xff0c; 完整源码源文件已标注的数据集训练好的模型环境配置教程程序运行说明文档 可以替换自己训练的模型&#xff0c;实现检测目标自定义 blog.csdnimg.cn/direct/31c61653310648458126c961a01fd682.png) 以下文章及示…

作者头像 李华