当前位置: 首页 > news >正文

SpringBoot整合Swagger UI 用于提供接口可视化界面

目录

一、引入相关依赖

二、添加配置文件

三、测试

四、Swagger 相关注解


一、引入相关依赖

  1. 图像化依赖
    Swagger UI 用于提供可视化界面:

    <dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.9.2</version>
    </dependency>
    
  2. Swagger2依赖
    Swagger2 用于生成和展示接口文档:

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

    注意: 使用 Spring Boot 时,确保版本合适,否则可能无法成功导入。推荐的 Spring Boot 版本通常为 2.3.x2.4.x


二、添加配置文件

  1. Swagger 配置类:

    在 Spring Boot 项目中,创建一个 Swagger 配置类来启用 Swagger 功能并进行相关配置。

    @Configuration
    @EnableSwagger2
    public class SwaggerConfig implements WebMvcConfigurer {@Beanpublic Docket createRestApi() {return new Docket(DocumentationType.SWAGGER_2)// 添加 API 详情信息.apiInfo(apiInfo()).select()// 只显示有 @ApiOperation 注解的接口.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))// 设置展示的路径.paths(PathSelectors.any()).build()// 是否开启 Swagger.enable(true);}/*** 设置 API 信息* @return ApiInfo*/private ApiInfo apiInfo() {return new ApiInfoBuilder().title("API文档") // 文档标题.description("接口文档详情信息") // 文档描述.version("1.0") // 版本.contact(new Contact("", "", "")) // 联系方式.license("") // 许可.licenseUrl("") // 许可链接.build();}@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("/**").addResourceLocations("classpath:/static/");registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");WebMvcConfigurer.super.addResourceHandlers(registry);}
    }
    
  2. 说明:

    • @EnableSwagger2:启用 Swagger2 支持。
    • Docket:用于配置 Swagger。
    • @ApiOperation:控制哪些方法会被生成文档。
    • @Api:控制哪个类会被生成文档。
    • @ApiInfo:文档的元数据配置,如标题、描述、版本等。

三、测试

  • 接口文档的访问地址:
    访问 Swagger UI 页面,可以查看和测试接口。默认路径为:

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

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

四、Swagger 相关注解

  1. @Api
    用于标注控制器类,描述整个类的功能。

    @Api(tags = {"用户信息接口"})
    public class UserController {// 类中的方法
    }
    
  2. @ApiOperation
    用于标注方法,描述该接口的功能。

  3. @ApiOperation(value = "查询所有用户信息")
    @GetMapping("/users")
    public List<User> getAllUsers() {// 查询所有用户信息
    }
    

    注: @Api@ApiOperation 需要同时使用。

  4. @ApiImplicitParams
    用于标注方法的参数信息,通常配合 @ApiImplicitParam 使用。

    @ApiImplicitParams({@ApiImplicitParam(name = "userId", value = "用户ID", required = true, dataType = "Long", paramType = "query")
    })
    @GetMapping("/user")
    public User getUserById(@RequestParam Long userId) {// 查询用户信息
    }
    
  5. @ApiModel
    用于描述模型类的元数据。当用户的入参是实体类时,使用该注解描述实体类的结构。

    @ApiModel("用户类实体信息")
    public class User {@ApiModelProperty(value = "用户ID", required = true)private Long userId;@ApiModelProperty(value = "用户名")private String userName;// 省略其他字段和方法
    }
    

通过以上步骤配置和注解,您就可以在 Spring Boot 项目中使用 Swagger 生成接口文档并通过 Swagger UI 进行展示和交互了。这对于开发、调试和文档管理都非常有帮助。

相关文章:

SpringBoot整合Swagger UI 用于提供接口可视化界面

目录 一、引入相关依赖 二、添加配置文件 三、测试 四、Swagger 相关注解 一、引入相关依赖 图像化依赖 Swagger UI 用于提供可视化界面&#xff1a; <dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactI…...

如何实现滑动开关功能

文章目录 1 概念介绍2 使用方法3 示例代码 我们在上一章回中介绍了PageView这个Widget,本章回中将介绍Switch Widget.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1 概念介绍 我们在这里介绍的Switch是指左右滑动的开关&#xff0c;常用来表示某项设置是打开还是关闭。Fl…...

数仓的数据加工过程-ETL

ETL代表Extract Transform和Load。ETL将所有三个数据库功能组合到一个工具中&#xff0c;以从一个数据库获取数据并将其放入另一个数据库。 提取&#xff1a;提取是从数据库中提取(读取)信息的过程。在此阶段&#xff0c;从多个或不同类型的来源收集数据。 转换&#xff1a;转…...

自动驾驶中的多传感器时间同步

目录 前言 1.多传感器时间特点 2.统一时钟源 2.1 时钟源 2.2 PPSGPRMC 2.3 PTP 2.4 全域架构时间同步方案 3.时间戳误差 3.1 硬件同步 3.2 软件同步 3.2.3 其他方式 ① ROS 中的 message_filters 包 ② 双端队列 std::deque 参考&#xff1a; 前言 对多传感器数据…...

CYT3BB_4BB:Clock system

CYT3BB/4BB的时钟系统包括8-MHz IMO、2个ILO、4个看门狗计时器、4个PLL、一个FLL、5个时钟监控器(CSV)、一个8-33.34MHzECO和一个32.768-kHz WCO。   该时钟系统支持三个主时钟域: CLK_HF、CLK_SLOW和CLK_LF。 - CLK_HFx: CLK_HFx是活动模式的时钟。每个人都可以使用任…...

C# OpenCV机器视觉:利用CNN实现快速模板匹配

在一个阳光灿烂的周末&#xff0c;阿强正瘫在沙发上&#xff0c;百无聊赖地换着电视频道。突然&#xff0c;一则新闻吸引了他的注意&#xff1a;某博物馆里一幅珍贵的古画离奇失踪&#xff0c;警方怀疑是被一伙狡猾的盗贼偷走了&#xff0c;现场只留下一些模糊不清的监控画面&a…...

消息队列篇--通信协议扩展篇--二进制编码(ASCII,UTF-8,UTF-16,Unicode等)

1、ASCII&#xff08;American Standard Code for Information Interchange&#xff09; 范围&#xff1a;0 到 127&#xff08;共 128 个字符&#xff09;描述&#xff1a;ASCII 是一种早期的字符编码标准&#xff0c;主要用于表示英文字母、数字和一些常见的符号。每个字符占…...

Direct Preference Optimization (DPO): 一种无需强化学习的语言模型偏好优化方法

论文地址&#xff1a;https://arxiv.org/pdf/2305.18290 1. 背景与挑战 近年来&#xff0c;大规模无监督语言模型&#xff08;LM&#xff09;在知识获取和推理能力方面取得了显著进展&#xff0c;但如何精确控制其行为仍是一个难题。 现有的方法通常通过**强化学习从人类反馈&…...

跟我学C++中级篇——容器的连接

一、数据的整合 在实际的开发场景中&#xff0c;经常可以遇到以下的情况&#xff1a;有几个地方的数据需要整合在一起。解决办法也有很多&#xff0c;在不同的层面有不同的解决方式。比如经过清洗可以把非关系型数据转为关系型数据。但在底层编程的情况中会发现有几情况&#…...

java求职学习day15

多线程 1 基本概念 1.1 程序和进程的概念 &#xff08;1&#xff09;程序 - 数据结构 算法&#xff0c;主要指存放在硬盘上的可执行文件。 &#xff08;2&#xff09;进程 - 主要指运行在内存中的可执行文件。 &#xff08;3&#xff09;目前主流的操作系统都支持多进程&a…...

【脚本】如何禁用谷歌浏览器自动更新

这里写自定义目录标题 问题描述解决方法代码 问题描述 最近更新系统以后&#xff0c;发现chrome老是自己更新&#xff0c;导致我的代码也得跟着他更新&#xff0c;就跟一个拜托不掉的狗皮膏药一样。 解决方法 于是我写了一个脚本&#xff0c;以下代码都是bash代码&#xff0…...

【Linux】华为服务器使用U盘安装统信操作系统

目录 一、准备工作 1.1 下载UOS官方系统 &#xff11;.&#xff12;制作启动U盘 1.3 服务器智能管理系统iBMC 二、iBMC设置U盘启动 一、准备工作 1.1 下载UOS官方系统 服务器CPU的架构是x86-64还是aarch64&#xff09;,地址&#xff1a;统信UOS生态社区 - 打造操作系统创…...

WPF3-在xaml中引用其他程序集的名称空间

1. 如何在XAML里引用类库中的名称空间和类2. 小结 1. 如何在XAML里引用类库中的名称空间和类 首先需要记住一点&#xff1a;把类库引用到项目中是引用其中名称空间的物理基础&#xff0c;无论是C#还是XAML都是这样。 一旦将一个类库引用进程序&#xff0c;就可以引用其中的名…...

Python 在Word中添加、或删除超链接

在Word文档中&#xff0c;超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能。通过添加超链接&#xff0c;用户可以轻松地导航到相关信息&#xff0c;从而增强文档的互动性和可读性。本文将介绍如何使用Python在Word中添加超链接、或删除Word文档中的超…...

基于 WPF 平台使用纯 C# 实现动态处理 json 字符串

一、引言 在当今的软件开发领域&#xff0c;数据的交换与存储变得愈发频繁&#xff0c;JSON&#xff08;JavaScript Object Notation&#xff09;作为一种轻量级的数据交换格式&#xff0c;以其简洁、易读、便于解析和生成的特点&#xff0c;被广泛应用于各种应用程序中。在 W…...

「全网最细 + 实战源码案例」设计模式——单例设计模式

核心思想&#xff1a; 属于创建型设计模式&#xff0c;核心目的是确保一个类在整个程序运行期间只有一个实例&#xff0c;并提供一个全局访问点来获取该实例。 控制共享资源的访问&#xff08;如数据库链接、配置管理、日志处理器等&#xff09; 真实世界类比&#xff1a;政府…...

第01章 19 通过点数据逐级构建球体体数据的综合性小例子

用VTK库来创建一个三维图像数据&#xff08;vtkImageData&#xff09;&#xff0c;并填充标量数据以表示一个球体的体数据。球的半径为50&#xff0c;体数据的空间间隔为1.0/1000。 首先&#xff0c;我需要包含VTK的头文件&#xff0c;并且创建一个vtkImageData对象。然后&…...

CVE-2024-23897-Jenkins任意文件读取漏洞复现

content Jenkins是什么CVE-2024-23897总结修复建议 Jenkins是什么 Jenkins是一人基于Java开发的、可扩展的持续集成引擎&#xff0c;用于持续、自动地构建/测试软件项目&#xff0c;可以监控一些定时执行的任务。 官网文档&#xff1a; Jenkins是一款开源 CI&CD 软件&…...

前端react后端java实现提交antd form表单成功即导出压缩包

前端&#xff08;React Ant Design&#xff09; 1. 创建表单&#xff1a;使用<Form>组件来创建你的表单。 2. 处理表单提交&#xff1a;在onFinish回调中发起请求到后端API&#xff0c;并处理响应。 import React from react; import { Form, Input, Button } from ant…...

基于ESP32的桌面小屏幕实战[6]:环境搭建和软件基础

摘要 本文分为两部分&#xff1a;Linux开发环境搭建和软件基础。Linux开发环境搭建介绍了Ubuntu虚拟机安装及SSH、Samba配置&#xff0c;可以实现用VSCode操作虚拟机。为了后续工作&#xff0c;搭建了乐鑫ESP32 SDK环境。软件基础介绍了Linux开发常用的软件基础&#xff0c;包…...

Excel VBA实战:打造高精度自定义计时器

1. 为什么需要自定义计时器&#xff1f; 在实验室数据采集、运动训练计时、工业生产监控等场景中&#xff0c;我们经常需要精确记录时间间隔。虽然Excel自带的时间函数能解决部分需求&#xff0c;但遇到以下情况时&#xff0c;原生功能就显得力不从心&#xff1a; 毫秒级精度要…...

3步掌控《缺氧》存档:用Oni-Duplicity打造理想殖民地

3步掌控《缺氧》存档&#xff1a;用Oni-Duplicity打造理想殖民地 【免费下载链接】oni-duplicity A web-hosted, locally-running save editor for Oxygen Not Included. 项目地址: https://gitcode.com/gh_mirrors/on/oni-duplicity 你是否曾因《缺氧》中复制人负面特质…...

Wan2.2-I2V-A14B私有部署镜像优势:零依赖冲突、开箱即用、免编译安装

Wan2.2-I2V-A14B私有部署镜像优势&#xff1a;零依赖冲突、开箱即用、免编译安装 1. 镜像核心价值与定位 Wan2.2-I2V-A14B私有部署镜像是专为文生视频场景打造的一站式解决方案。这个镜像最大的特点就是解决了AI模型部署中最让人头疼的环境配置问题&#xff0c;真正做到下载即…...

嵌入式C语言状态机编程实践与优化

1. 状态机编程基础概念在嵌入式系统开发中&#xff0c;状态机(State Machine)是一种极其重要的编程范式。它通过定义系统可能处于的状态集合、状态之间的转换条件以及状态转换时执行的动作&#xff0c;来清晰地描述系统的行为逻辑。状态机之所以在嵌入式领域广泛应用&#xff0…...

OpCore-Simplify:让OpenCore EFI配置变得智能高效

OpCore-Simplify&#xff1a;让OpenCore EFI配置变得智能高效 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 问题引入&#xff1a;为什么Hackintosh配…...

论文详解 | 基于轨迹数据的多层空间交互网络动态社区发现与时序分析

论文详解 | 基于轨迹数据的多层空间交互网络动态社区发现与时序分析 一、论文基础信息与核心概述 1.1 论文基础信息 项目 详情 论文标题 Dynamical community detection and spatiotemporal analysis in multilayer spatial interaction networks using trajectory data 1.2 …...

计算机毕业设计:Python汽车销售数据爬虫可视化分析平台 Flask框架 requests爬虫 可视化 数据分析 大数据 机器学习 大模型(建议收藏)✅

博主介绍&#xff1a;✌全网粉丝50W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业项目实战8年之久&#xff0c;选择我们就是选择放心、选择安心毕业✌ > &#x1f345;想要获取完整文章或者源码&#xff0c;或者代做&#xff0c;拉到文章底部即可与…...

别再只跑例程了!深入解析ESP32S3的Camera模块:从DVP时序到图像缓冲区的底层逻辑

深入解析ESP32S3的Camera模块&#xff1a;从DVP时序到图像缓冲区的底层逻辑 当你在ESP32S3上成功运行了第一个Camera例程&#xff0c;看到LCD屏幕上显示出模糊的测试图像时&#xff0c;那种成就感可能很快就会被新的疑问取代&#xff1a;为什么图像有时会卡顿&#xff1f;为什么…...

游戏服务器开发者的选择:用Fastutil的Object2ObjectOpenHashMap优化NPC数据存储

游戏服务器性能优化实战&#xff1a;Fastutil的Object2ObjectOpenHashMap在NPC数据管理中的应用 在大型多人在线游戏&#xff08;MMO&#xff09;开发中&#xff0c;NPC&#xff08;非玩家角色&#xff09;系统的数据管理往往成为性能瓶颈。传统Java集合在高频更新场景下容易引…...

告别HEIC预览盲区:让Windows用户轻松驾驭苹果图像格式

告别HEIC预览盲区&#xff1a;让Windows用户轻松驾驭苹果图像格式 【免费下载链接】windows-heic-thumbnails Enable Windows Explorer to display thumbnails for HEIC files 项目地址: https://gitcode.com/gh_mirrors/wi/windows-heic-thumbnails 问题场景&#xff1…...