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 {
    @Bean
    public 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 {

    @Autowired
    private 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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

“人性化设计”技术概要

本文是由《埃森哲技术愿景 2024&#xff1a;“人性化设计”技术将通过提高生产力和创造力来重塑行业并重新定义领导者》这个文章来翻译解读的。原文地址如下&#xff0c;大家可以自行下载&#xff1a; 下载地址 其实看到这篇文章的时候&#xff0c;联想到这些年机器人的市场发展…

51之定时器与中断系统

目录 1.定时器与中断系统简介 1.1中断系统 1.2定时器 1.2.1定时器简介 1.2.2定时器大致原理及其配置 1.2.3定时器所需的所有配置总介 2.定时器0实现LED闪烁 3.使用软件生成定时器初始化程序 1.定时器与中断系统简介 1.1中断系统 首先&#xff0c;我们需要来了解一下什么…

C++:赋值运算符(17)

赋值也就是将后面的值赋值给变量&#xff0c;这里最常用的就是 &#xff0c;a1那么a就是1&#xff0c;此外还包含以下的赋值运算 等于int a 1; a10 a10加等于int a 1; a1;a2-减等于int a 1; a-1;a0*乘等于int a 2; a*5;a10/除等于int a 10; a/2;a5%模等于int a 10; a%…

佑雅的小布谷数据平台获取token如何实现

小博股数据开放平台是面向全部用户的股票数据开放平台&#xff0c;通过调用接口可以获取股票的历史数据。在调用之前需要进行下面的准备工作&#xff0c;第一步注册&#xff1a; 用户在注册之后&#xff0c;登录点击头像进入个人中心&#xff0c;在功能模块的最下方有一个创建应…

nodejs实现TCP端口转发并截包的小工具

近期我正致力于开发一个基于 Go-CQHTTP 的 QQ 机器人应用程序项目&#xff0c;该项目现已成功实现了 Go-CQHTTP 的容器化部署&#xff0c;利用 Docker 技术确保其运行环境的一致性与便捷性。随着项目推进&#xff0c;接下来的工作重心转向部署配套的签名服务器&#xff08;qsig…

达梦disql登录数据库显示“未连接”

问题&#xff1a;达梦数据库在使用disql登录时&#xff0c;显示“未连接”。 指定了IP和端口号还是连接异常。 [dmdbatest ~]$ disql sysdba/Dameng123 disql V8 SQL> select * from v$instances; 未连接 SQL> exit [dmdbatest ~]$ disql sysdba/Dameng123localhost:52…

猜数字游戏

猜数字游戏 前些年清北的博士到中小学任教&#xff0c;曾经成为新闻热点。有一种声音是&#xff0c;国家为了培养这些博士生&#xff0c;提供了很好的资源和机会&#xff0c;他们本来应该做科学研究的&#xff0c;却去教中小学生&#xff0c;把学到的东西浪费了。我倒是觉得&a…

Poster:DoS 攻击的纵向分析

ABSTRACT 拒绝服务 (DoS) 攻击已成为当今数字世界中经常发生的情况。通过下载和僵尸网络服务提供易于使用的攻击软件&#xff0c;这些软件可以在暗网中廉价租用&#xff0c;使对手能够进行此类攻击&#xff0c;而无需全面了解这些技术。为了调查这一威胁&#xff0c;我们对 201…

申请代码签名证书详解

目录 那么什么是代码签名证书呢&#xff1f; 那么为什么非要部署代码签名不可呢&#xff1f; 代码签名证书是如何让软件“安全化”呢&#xff1f; 不同类型的代码签名证书&#xff1a; OV代码签名证书和EV代码签名证书的区别 背景&#xff1a;代码签名证书是使得软件开发商…

chabot项目介绍

项目介绍 整体的目录如下所示&#xff1a; 上述的项目结构中出了model是必须的外&#xff0c;其他的都可以根据训练的代码参数传入进行调整&#xff0c;有些不需要一定存在data train.pkl:对原始训练语料进行tokenize之后的文件,存储一个list对象&#xff0c;list的每条数据表…

4.4C++

1 #include <iostream> #include <cmath> using namespace std; class A{ private:int a;// 判断一个数是否为质数bool isP(int num) {if (num<2) return false;for (int i2;i<sqrt(num);i) {if (num % i 0) {return false;}}return true;} public:// 构造…

面试题:MySQL 高可用

&#x1f496; 主从同步 原理 核心&#xff1a;二进制日志 binlog 是 MySQL 的日志&#xff0c;redolog 和 undolog 是 innodo 引擎的日志。 &#x1f496; 分库分表 分类 问题和技术 数据一致性问题 使用分布式事务管理组件&#xff0c;如ShardingSphere的分布式事务功能&…

java自动化测试学习-03-06java基础之运算符

运算符 算术运算符 运算符含义举例加法&#xff0c;运算符两侧的值相加ab等于10-减法&#xff0c;运算符左侧减右侧的值a-b等于6*乘法&#xff0c;运算符左侧的值乘以右侧的值a*b等于16/除法&#xff0c;运算符左侧的值除以右侧的值a/b等于4%取余&#xff0c;运算符左侧的值除…

渗透测试靶机----sec123

渗透测试靶机----sec123 复现打靶,这里先需要搭建好环境 这里还需要将内网中的网站映射到公网中,完全模拟实战渗透测试使用frp轻松实现 这里就搭建好靶机了,准备开始渗透工作 先使用这个网址,扫描看看这里通过扫描,发现这三个端口对应三个网页: http://107.151.243.222:8…

mysql索引相关知识点

1. 索引是什么&#xff1f; 索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分)&#xff0c;它们包含着对数据表里所有记录的引用指针。 索引是一种数据结构。数据库索引&#xff0c;是数据库管理系统中一个排序的数据结构&#xff0c;以协助快速查询、更新数…

AcWing1402.星空之夜

【题目链接】1402. 星空之夜 - AcWing题库 夜空深处&#xff0c;闪亮的星星以星群的形式出现在人们眼中&#xff0c;形态万千。 一个星群是指一组非空的在水平&#xff0c;垂直或对角线方向相邻的星星的集合。 一个星群不能是一个更大星群的一部分。 星群可能是相似的。 如…

使用git 和 github协作开发

文章目录 github浏览器汉化插件github新建仓库git安装以及ssh配置团队创建及基本命令的使用创建团队基本命令 分支管理快速切换远程仓库地址 如何使用git && github进行协作开发&#xff0c;包括git常见基础命令 github浏览器汉化插件 在刚开始使用github的时候&#…

python函数练习2

找出10000以内能被5或6整除&#xff0c;但不能被两者同时整除的数&#xff08;函数&#xff09; def func():for i in range(1,50):if (i % 5 0 or i % 6 0 ):if i % 5 0 and i % 6 0:continue #利用continue跳过能被5和6整除的数print(i) func()写一个方法&#xff0c;计算…

OriginCar之FoxGlove使用

OriginCar之FoxGlove使用 前言 OriginCar自带一套用于智能车比赛的上位机数字系统&#xff0c;用于监控OriginCar各个传感器信息以及和OriginCar进行话题服务通信&#xff0c;使用者可以下载百度网盘中关于数字环境使用文档及启动文件的相关内容。以下是上位机介绍。 传感器…

2.Swift基础控件:图标文字按钮

Swift图标标题按钮 一、自定义IconTitleButton类 import Foundation/* 枚举 设置 图片的位置 */ enum ButtonImagePosition : Int {case imageTop 0case imageLeftcase imageBottomcase imageRight } extension UIButton {/**type &#xff1a;image 的位置Space &#xff1…