Spring boot swagger 引入 以及后续使用 Knife4j 替换swagger

news2024/9/21 14:36:39
swagger配置
swagger 引入jar包

pom.xml 添加 对应的 swagger 信息

<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>
swagger 配置配置类

添加对应的 swagger 配置类信息,注入 配置

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.oas.annotations.EnableOpenApi;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;


@Configuration // 标明是配置类
@EnableSwagger2 //开启swagger功能
//@EnableOpenApi
public class SwaggerConfig {
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)  // DocumentationType.SWAGGER_2 固定的,代表swagger2
//                .groupName("分布式任务系统") // 如果配置多个文档的时候,那么需要配置groupName来分组标识
                .apiInfo(apiInfo()) // 用于生成API信息
                .select() // select()函数返回一个ApiSelectorBuilder实例,用来控制接口被swagger做成文档
                .apis(RequestHandlerSelectors.basePackage("org.gateway.controller")) // 用于指定扫描哪个包下的接口
                .paths(PathSelectors.any())// 选择所有的API,如果你想只为部分API生成文档,可以配置这里
                .build();
    }

    /**
     * 用于定义API主界面的信息,比如可以声明所有的API的总标题、描述、版本
     * @return
     */
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("端口对接项目API") //  可以用来自定义API的主标题
                .description("中间件API管理") // 可以用来描述整体的API
                .termsOfServiceUrl("") // 用于定义服务的域名
                .version("1.0") // 可以用来定义版本。
                .build(); //
    }
}

swagger 注解
  • @Api(value = "用户管理", description = "用户管理API")
    @Api 注解有许多属性可以使用,其中 value 和 description 是两个常用的属性。
    value: 通常用于指定 API 的名称。
    description: 用于描述这个 API 的功能
    @Operation(summary = "普通body请求")
  • @ApiOperation(value = "查询全部设备配置解析类")
    @ApiOperation 注解通常用于方法级别,用来描述一个特定的操作或者方法的功能。value 属性是 @ApiOperation 中的一个重要属性,用来简短地描述该操作的目的。
显示 api 文件信息显示

在这里插入图片描述

swagger 地址信息

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

knife4j 配置

Knife4j是一个集Swagger2 和 OpenAPI3为一体的增强解决方案

导入 knife4j jar 包,并注释调 swagger 引入的jar包,因为 knife4j已经
<dependency>
	<groupId>com.github.xiaoymin</groupId>
	<artifactId>knife4j-spring-boot-starter</artifactId>
	<!--在引用时请在maven中央仓库搜索3.X最新版本号-->
	<version>3.0.2</version>
</dependency>
注释 EnableSwagger2 使用 EnableOpenApi 就可以启用 knife4j 信息了
package org.gateway.config.swagger;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.oas.annotations.EnableOpenApi;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;


@Configuration // 标明是配置类
//@EnableSwagger2 //开启swagger功能
@EnableOpenApi
public class SwaggerConfig {
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)  // DocumentationType.SWAGGER_2 固定的,代表swagger2
//                .groupName("分布式任务系统") // 如果配置多个文档的时候,那么需要配置groupName来分组标识
                .apiInfo(apiInfo()) // 用于生成API信息
                .select() // select()函数返回一个ApiSelectorBuilder实例,用来控制接口被swagger做成文档
                .apis(RequestHandlerSelectors.basePackage("org.gateway.controller")) // 用于指定扫描哪个包下的接口
                .paths(PathSelectors.any())// 选择所有的API,如果你想只为部分API生成文档,可以配置这里
                .build();
    }

    /**
     * 用于定义API主界面的信息,比如可以声明所有的API的总标题、描述、版本
     * @return
     */
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("端口对接项目API") //  可以用来自定义API的主标题
                .description("中间件API管理") // 可以用来描述整体的API
                .termsOfServiceUrl("") // 用于定义服务的域名
                .version("1.0") // 可以用来定义版本。
                .build(); //
    }
}

knife4j注解

@Tag(name = "body参数")
@Tag 注解可以用来对 API 进行分组,并且为每个分组提供一个描述性的标签。这对于在生成的 API 文档中组织和导航是非常有用的。
@Operation(summary = "普通body请求")
@Operation 注解用于描述单个 API 操作的详细信息,如它的摘要、描述、请求体等。

knife4j页面

在这里插入图片描述

knife4j 地址信息

http://localhost:8080/doc.html

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

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

相关文章

重头开始嵌入式第三十天(Linux系统编程 ip头)

目录 1.常用网络测试工具 1、telnet 远程登录工具&#xff0c;默认都是系统安装。 2、netstat 测试查看网络端口使用情况 3、ping 命令 测试网路的联通状况 4、arp 地址解析命令 5.1 wireshark >可视化界面 5.2 tcpdump 》命令行 >www.tcpdump.com 2.ip头 3…

【微信小程序】分包--独立分包

1. 什么是独立分包 独立分包本质上也是分包&#xff0c;只不过它比较特殊&#xff0c;可以独立于主包和其他分包而单独运行。 2. 独立分包和普通分包的区别 3. 独立分包的应用场景 4. 独立分包的配置方法 5. 引用原则

什么是PMP项目管理?PMP证书有什么用?

PMP&#xff08;Project Management Professional&#xff09;项目管理&#xff0c;简单来说&#xff0c;就是美国项目管理协会&#xff08;PMI&#xff09;颁发的一种项目管理资格认证。 它代表了项目管理领域的最高水平&#xff0c;是一种系统化的管理方法。PMP项目管理将项…

大模型有哪些评估指标?

1. 导入 你可能听说过A大模型比B大模型好&#xff0c;但你知道如何评估这些模型吗&#xff1f;在大模型领域&#xff0c;有许多指标可以帮助我们评估模型的性能。这些指标可以帮助我们了解模型的准确性、效率和可解释性。在本文中&#xff0c;我们将介绍一些常用的指标&#x…

卡尔曼滤波实现一阶马尔可夫形式的滤波|价格滤波|MATLAB代码|无需下载,复制后即可运行

一节马尔可夫 一阶马尔可夫噪声是一种具有马尔可夫性质的随机过程。在这种噪声中,当前时刻的状态只与前一时刻的状态有关,与更早的状态无关。 一阶马尔可夫噪声可以用一个状态转移矩阵表示,矩阵的每个元素表示从一个状态转移到另一个状态的概率。 滤波模型 状态量的迭代…

CleanClip for Mac v2.2.0 剪贴板历史管理软件正式激活版

CleanClip 是一款专为 Mac 用户设计的强大剪贴板历史管理工具。它能够自动保存您复制的内容,让您轻松访问和管理剪贴板历史记录,大大提高工作效率。 下载地址&#xff1a;CleanClip for Mac v2.2.0 剪贴板历史管理软件正式激活版 主要特点 自动保存剪贴板历史 CleanClip 会自…

作为HR如何做候选人的背景调查

如果HR想更进一步解决背景调查难题&#xff0c;可以先建立一套规范的调查流程&#xff0c;这样能够大大节约时间。在这套流程中要包括明确调查的内容&#xff0c;比如个人学历&#xff0c;工作经历&#xff0c;资质证书等等&#xff0c;只要是和岗位招聘相关的信息都需要全面覆…

SAP B1 三大基本表单标准功能介绍-物料主数据(中)

背景 在 SAP B1 中&#xff0c;科目表、业务伙伴主数据、物料主数据被称为三大基本表单&#xff0c;其中的标准功能是实施项目的基础。本系列文章将逐一介绍三大基本表单各个字段的含义、须填内容、功能等内容。 附上 SAP B1 10.0 的帮助文档&#xff1a;SAP Business One 10…

【软件测试专栏】软件测试 — BUG篇

博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;软件测试专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 软件测试 — BUG篇 关键词&#xff1a;bug、bug生命周期、bug级别…

解析C++内联函数与auto关键字

&#x1f308;个人主页&#xff1a;Yui_ &#x1f308;Linux专栏&#xff1a;Linux &#x1f308;C语言笔记专栏&#xff1a;C语言笔记 &#x1f308;数据结构专栏&#xff1a;数据结构 &#x1f308;C专栏&#xff1a;C 文章目录 1. 内联函数1.1 概念1.2 内联的特性1.3 内联与…

YOLOv8改进 | 模块缝合 | C2f融合PKINet提升遥感图像的检测性能【完整代码】

秋招面试专栏推荐 &#xff1a;深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 &#x1f4a1;&#x1f4a1;&#x1f4a1;本专栏所有程序均经过测试&#xff0c;可成功执行&#x1f4a1;&#x1f4a1;&#x1f4a1; 专栏目录 &#xff1a;《YOLOv8改进有效…

MySQL系列—7.内存结构

目录 1.Buffer Pool 2.Redo Log Buffer 3.change buffer InnoDB内存结构主要分为4个部分&#xff1a; Buffer Pool Change Pool #写缓存 Log Buffer #日志缓存 Adaptive Hash Index #自适应hash索引 1.Buffer Pool 也是B树结构 1.当读一条数据时&#xff0c;会先检查是…

去中心化身份验证:Web3时代数字身份的革新

随着Web3时代的到来&#xff0c;去中心化技术正在重新定义数字身份验证的方式。传统的身份验证方法常常依赖于中心化的数据库和中介机构&#xff0c;这些系统不仅易受攻击&#xff0c;还可能侵犯用户的隐私。而去中心化身份验证&#xff08;DID, Decentralized Identifier&…

SDN与SD-WAN:共同点和区别分析

软件定义网络&#xff08;SDN&#xff09;是一种革新性的网络架构&#xff0c;而软件定义广域网&#xff08;SD-WAN&#xff09;则是基于SDN技术发展而来的网络解决方案。两者有许多共同点&#xff0c;但它们之间也存在显著差异。本文将详细分析SDN与SD-WAN的共同和区别。 SDN的…

cv2.error: OpenCV(4.10.0) :-1: error: (-5:Bad argument) in function ‘resize‘

cv2.error: OpenCV&#xff08;4.10.0&#xff09;:-1: error: &#xff08;-5:Bad argument&#xff09;in function resize 安装好Echomimic之后&#xff0c;上传图片和音频进行生成视频的时候报错了&#xff0c;在服务器端查看报错信息如下&#xff1a; 解决方法&#xff1a…

uniapp / uniapp x UI 组件库推荐大全

在 uniapp 开发中&#xff0c;我们大多数都会使用到第三方UI 组件库&#xff0c;提起 uniapp 的UI组件库&#xff0c;我们最常使用的应该就是uview了吧&#xff0c;但是随着日益增长的需求&#xff0c;uview 在某些情况下已经不在满足于我们的一些开发需求&#xff0c;尽管它目…

在线压缩pdf,无需安装就可轻易压缩pdf文件

PDF文件因其跨平台兼容性和良好的阅读体验&#xff0c;成为工作学习中不可或缺的一部分。然而&#xff0c;随着文件体积的增大&#xff0c;如何有效压缩PDF文件成为了许多人的迫切需求。很多小伙伴想要通过在线的方式来压缩PDF文件&#xff0c;下面给大家分享一种在线压缩方法&…

前端布局利器:Flex布局

曾经的我们使用传统布局方式&#xff0c;我们深刻的体会着1px除不尽&#xff0c;三等分&#xff0c;居中&#xff0c;塌陷等等让我们升血压的问题。传统的布局方式&#xff1a;布局繁琐&#xff0c;需要使用大量的HTML和CSS代码来实现简单的布局。灵活性差&#xff0c;难以实现…

腾讯视频:让自媒体创作者“怀才有遇”

在这个信息快速流通的自媒体时代&#xff0c;时间变得越来越碎片化&#xff0c;短剧、短番与短节目则凭借着短小精悍、内容紧凑的特点&#xff0c;完美契合了碎片化的时间消费习惯。这些短的内容被观众喜爱的同时&#xff0c;也让许多自媒体创作者找到了致富之路。 相对于大IP…

Redis Desktop Manager 0.8.8.384 安装与使用详解

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐&#xff1a;「storm…