springboot项目引入swagger

1.引入依赖

创建项目后,在 pom.xml 文件中引入 Swagger3 的相关依赖。回忆一下,我们集成 Swagger2 时,引入的依赖如下: 

<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version>
</dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.9.2</version>
</dependency>

而在 Swagger3 中,我们不需要再引入两个不同的依赖了,我们只需要引入一个依赖就足够,具体引入的依赖如下:

<dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId><version>3.0.0</version>
</dependency>

而这部分,Swagger2 和 Swagger3 就有所不同了,Swagger2 需要添加两项不同依赖,而 Swagger3 只用添加一项依赖就可以了。

除此之外还有一个依赖与上述Swagger3 功能一样:

<dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-ui</artifactId><version>1.6.3</version>
</dependency>

 1.1.springfox-boot-starter与springdoc-openapi-ui的区别

  1. springfox-boot-starter:

    • 这是Springfox团队开发的一个库,用于集成Swagger到Spring Boot项目中。
    • 版本3.0.0是适用于Swagger 3的版本,支持Swagger 3的新特性和规范。
    • 该库提供了一组注解和类,用于配置和生成Swagger文档,并提供了与Spring MVC集成的功能。
    • 通常与Springfox的其他模块一起使用,如 springfox-swagger-uispringfox-swagger2
  2. springdoc-openapi-ui:

    • 这是一个由社区维护的库,用于集成OpenAPI(以前称为Swagger)到Spring Boot项目中。
    • 版本1.6.3是适用于OpenAPI 3的版本,支持OpenAPI 3的新特性和规范。
    • 该库提供了一组注解和类,用于配置和生成OpenAPI文档,并提供了一个集成了Swagger UI的Web界面。
    • 与Springfox不同,springdoc-openapi-ui更专注于OpenAPI规范,提供了更多与OpenAPI规范对齐的功能和特性。

总的来说,如果你的项目使用Swagger 3(现在被重命名为OpenAPI 3),你可以选择使用 springfox-boot-starter 或者 springdoc-openapi-ui,具体选择取决于你更喜欢哪种库的风格和功能。

1.2使用Knife4j作为UI界面时需要导入一下依赖:

 <dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId><version>4.1.0</version></dependency>

com.github.xiaoymin:knife4j-openapi3-jakarta-spring-boot-starter 是 Knife4j 对 Swagger 3 的增强,它也提供了自己的注解和配置。通常来说,Knife4j 提供了更丰富的 UI 功能和配置选项,使得生成的 API 文档更加易读和美观。

2.  配置Swagger

在Spring Boot项目中创建一个配置类SwaggerConfig,并添加Swagger的配置信息。

@Configuration
public class SwaggerConfig {@Beanpublic OpenAPI springShopOpenAPI() {return new OpenAPI().info(new Info().title("进销存管理系统").contact(new Contact()).description("我的API文档").version("v1"));}
}

yaml文件配置如下:

#swagger3文档配置
springdoc:swagger-ui:enabled: true#参数扁平化处理(swagger界面实体属性可以当做params参数正常显示)default-flat-param-object: true

这样配置好了之后就可以正常使用注解了

使用注解方式如下:

接口controller:

@Slf4j
@Tag(name = "用户管理")
@RestController
@RequestMapping("/user")
public class UserController {@Autowiredprivate UserManager userManager;/*** //TODD* 系统登录** @author: * @date: 2024-04-05 13:03:40* @param: * @param* @return: ServiceVO**/@Operation(summary = "系统登录")@PostMapping("/login")public ServiceVO login(@RequestBody User user, HttpSession session)  {log.info("login user: " + user.toString());return userManager.login(user,session);}
}

实体类以及vo对象:

@Data
@Schema(description = "业务类型元数据表saveDto")
public class BasicElDataDto {@Schema(description = "主键新增不传")@TableId(value = "pk_id", type = IdType.AUTO)private String pkId;@Schema(description = "业务类型")private String serviceType;@Schema(description = "字段名称")private String elName;@Schema(description = "字段类型")private String elType;

3. 注解说明

Swagger3的注解与Swagger2有所不同,以下是一些常用注解的对照表:

4. 访问Swagger UI

启动您的Spring Boot应用后,您可以通过以下地址访问Swagger UI:

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/802899.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024智能计算、大数据应用与信息科学国际会议(ICBDAIS2024)

2024智能计算、大数据应用与信息科学国际会议(ICBDAIS2024) 会议简介 智能计算、大数据应用与信息科学之间存在相互依存、相互促进的关系。智能计算和大数据应用的发展离不开信息科学的支持和推动&#xff0c;而信息科学的发展又需要智能计算和大数据应用的不断拓展和应用。智…

Jmeter —— jmeter利用取样器中http发送请求

使用Jmeter发送HTTP请求 取样器是用来模拟用户操作&#xff0c;向服务器发送请求以及接收服务器的响应数 据的一类元件&#xff0c;其中HTTP请求取样器是用来模拟常用的http请求的 步骤如下&#xff1a; 步骤一&#xff1a;添加线程组 右击测试计划——添加——线程&#x…

如何制作exe文件第一步

目录 0.图片链接1.Welcome&#xff08;可跳过&#xff09;2.Project type--作用选择制作jar包的模式3.定义生成exe应用文件命名和输出地址4.配置执行信息4.1配置应用执行显示方式、安装名称、和显示图标4.2是否重定向日志文件&#xff08;根据需要进行选择&#xff09;4.3配置安…

人生建议——别怯

你的每一次胆怯&#xff0c;都是自我能量的“收缩”。 如果一害怕&#xff0c;就找地方躲。 那你永远要忍受恐惧带来的苦果。 成长&#xff0c;其实就是对恐惧的不断突破。 如果你什么都怯懦。 那就只能一直让自己待在角落。 遇到自己能解决的事情。 根本不用害怕。 遇…

Docker使用— Docker部署安装Nginx

Nginx简介 Nginx 是一款高性能的 web 服务器、反向代理服务器以及电子邮件&#xff08;IMAP/POP3/SMTP&#xff09;代理服务器&#xff0c;由俄罗斯开发者伊戈尔塞索耶夫&#xff08;Igor Sysoev&#xff09;编写&#xff0c;并在2004年10月4日发布了首个公开版本0.1.0。Nginx…

深入理解Linux veth虚拟网络设备:原理、应用与在容器化架构中的重要性

在Linux网络虚拟化领域&#xff0c;虚拟以太网设备&#xff08;veth&#xff09;扮演着至关重要的角色&#x1f310;。veth是一种特殊类型的网络设备&#xff0c;它在Linux内核中以成对的形式存在&#xff0c;允许两个网络命名空间之间的通信&#x1f517;。这篇文章将从多个维…

算法(二分查找)

1.给你一个非负整数 x &#xff0c;计算并返回 x 的 算术平方根 。 由于返回类型是整数&#xff0c;结果只保留 整数部分 &#xff0c;小数部分将被 舍去 。 注意&#xff1a;不允许使用任何内置指数函数和算符&#xff0c;例如 pow(x, 0.5) 或者 x ** 0.5 。 示例 1&#xf…

40.Python从入门到精通—Python3 JSON 数据解析 Python3 日期和时间 什么是时间元组? 获取当前时间 获取格式化的时间

40.Python从入门到精通—Python3 JSON 数据解析 Python3 日期和时间 什么是时间元组&#xff1f; 获取当前时间 获取格式化的时间 Python3 JSON 数据解析Python3 日期和时间什么是时间元组&#xff1f;获取当前时间获取格式化的时间 Python3 JSON 数据解析 Python3 中可以使用…

SD-WAN企业组网塑造智能网络

云桥通SD-WAN技术正在成为企业网络架构的主流选择&#xff0c;它通过智能管理和控制网络&#xff0c;为客户提供灵活、安全和高效的网络连接&#xff0c;以满足不断增长的业务需求。 云桥通SD-WAN为客户提供的业务能力&#xff1a; A. 提高网络性能 通过智能路由和负载均衡功…

note31:ORA600

感觉我这辈子都不会忘记这个错误码了 起因&#xff1a;某天晚上发现一个表没法插入数据&#xff0c;plsql报错&#xff1a;“表不存在”&#xff0c;试了各种命令&#xff0c;truncate、drop都不行。因为这张表是张不太影响业务的表&#xff0c;而且报错原因问了不少大佬&…

MuJoCo 入门教程(五)Python 绑定

系列文章目录 前言 本笔记本提供了使用本地 Python 绑定的 MuJoCo 物理入门教程。 版权声明 DeepMind Technologies Limited 2022 年版权所有。 根据 Apache License 2.0 版&#xff08;以下简称 "许可协议"&#xff09;授权&#xff1b;除非遵守许可协议&am…

Linux文件打开及创建(3.31)

创建一个file1文件。 运行结果&#xff1a;

DataX 数据库同步部分源码解析

在工作中遇到异构数据库同步的问题,从Oracle数据库同步数据到Postgres&#xff0c;其中的很多数据库表超过百万&#xff0c;并且包含空间字段。经过筛选&#xff0c;选择了开源的DataXDataX Web作为基础框架。DataX 是阿里云的开源产品&#xff0c;大厂的产品值得信赖&#xff…

Vue.js组件精讲 组件的通信2:派发与广播——自行实现dispatch和broadcast方法

上一讲的 provide / inject API 主要解决了跨级组件间的通信问题&#xff0c;不过它的使用场景&#xff0c;主要是子组件获取上级组件的状态&#xff0c;跨级组件间建立了一种主动提供与依赖注入的关系。然后有两种场景它不能很好的解决&#xff1a; 父组件向子组件&#xff0…

transformer上手(2) —— 注意力机制

自从 2017 年 Google 发布《Attention is All You Need》之后&#xff0c;各种基于 Transformer 的模型和方法层出不穷。尤其是 2018 年&#xff0c;OpenAI 发布的 GPT 和 Google 发布的 BERT 模型在几乎所有 NLP 任务上都取得了远超先前最强基准的性能&#xff0c;将 Transfor…

Java多路查找树(含面试大厂题和源码)

多路查找树&#xff08;Multiway Search Tree&#xff09;&#xff0c;也称为B树或B树&#xff0c;是一种自平衡的树形数据结构&#xff0c;用于存储大量数据&#xff0c;通常用于数据库和文件系统中。它允许在查找、插入和删除操作中保持数据的有序性&#xff0c;同时优化了磁…

【蓝桥杯每日一题】4.9网络分析(代码详解版)

终于把清明节假期时自己挖的坑给补上了 题目来源&#xff1a; 2069. 网络分析 - AcWing题库 参考&#xff1a; Bear_king的图解 y总代码解读 思路1&#xff1a; 思考&#xff1a; 题目看着&#xff0c;看到“发送信息后&#xff0c;又会发送到相邻的结点上面”这句话&am…

js通过Object.defineProperty实现数据响应式

目录 数据响应式属性描述符propertyResponsive 依赖收集依赖队列寻找依赖 观察器 派发更新Observer完整代码关于数据响应式关于Object.defineProperty的限制 数据响应式 假设我们现在有这么一个页面 <!DOCTYPE html> <html lang"en"><head><m…

Oracle表空间满清理方案汇总分享

目录 前言思考 一、第一种增加表空间的数据文件数量达到总容量的提升 二、第二种解决方案针对system和sysaux的操作 2.1SYSTEM表空间优化 2.2sysaux表空间回收 2.2.1针对sysaux的表空间爆满还有第二套方案维护 三、第三种解决方案使用alter tablespace resize更改表空间的…

深入浅出 -- 系统架构之微服务架构的新挑战

尽管微服务架构有着高度独立的软件模块、单一的业务职责、可灵活调整的技术栈等优势&#xff0c;但也不能忽略它所带来的弊端。本篇文章&#xff0c;我们从网络、性能、运维、组织架构和集成测试五个方面来聊一下设计微服务架构需要考虑哪些问题&#xff0c;对设计有哪些挑战呢…