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

spring boot 3集成swagger

Spring Boot 3 集成 Swagger 的过程与之前版本相比有一些变化,主要是因为 `springfox` 库已经停止更新,并且不再支持新的 Spring Boot 版本。因此,对于 Spring Boot 3 来说,推荐使用 `springdoc-openapi` 作为集成 Swagger 的解决方案,它完全支持 OpenAPI 3 规范并且兼容最新的 Spring Boot 和 Java 版本。

以下是集成步骤的概述:

### 1. 添加 Maven 依赖

首先,在你的 `pom.xml` 文件中添加 `springdoc-openapi-starter-webmvc-ui` 依赖:

```xml
<dependency>
    <groupId>org.springdoc</groupId>
    <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
    <version>2.1.0</version> <!-- 请检查最新版本 -->
</dependency>
```

确保你也有 `spring-boot-starter-web` 依赖,因为它是必要的:

```xml
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
```

### 2. 编写配置类(可选)

对于基本的设置,通常不需要额外的配置类。如果你需要自定义一些行为,比如分组、安全配置等,你可以创建一个配置类来定制 `springdoc-openapi` 的行为。

例如,你可以这样配置 API 文档的基本信息:

```java
import org.springdoc.core.models.GroupedOpenApi;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class SwaggerConfig {

    @Bean
    public GroupedOpenApi publicApi() {
        return GroupedOpenApi.builder()
                .group("springshop-public")
                .pathsToMatch("/public/**")
                .build();
    }
}
```

### 3. 使用 Swagger 注解

在你的控制器中使用 Swagger 提供的注解来描述 API。例如:

```java
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/api")
@Tag(name = "示例 API", description = "示例 API 描述")
public class ExampleController {

    @Operation(summary = "获取信息", description = "这是一个获取信息的例子")
    @GetMapping("/info")
    public String getInfo(@Parameter(description = "用户ID") String userId) {
        return "User ID is: " + userId;
    }
}
```

### 4. 访问 Swagger UI

完成上述配置后,启动应用程序并访问 `http://localhost:8080/swagger-ui.html` 或者 `http://localhost:8080/swagger-ui/index.html` 即可查看和测试你的 API 文档。

请注意,具体的路径可能会根据 springdoc-openapi 的版本有所不同,如果遇到问题,请查阅官方文档或项目 GitHub 页面上的说明。此外,为了安全考虑,在生产环境中应该关闭 Swagger UI 的访问,可以通过配置文件来实现:

```properties
springdoc.api-docs.enabled=false
springdoc.swagger-ui.enabled=false
```

以上是集成 Swagger 到 Spring Boot 3 的基本步骤。如果有更复杂的需求,如安全性配置、多分组等,可以进一步参考 `springdoc-openapi` 的官方文档进行深入配置。

相关文章:

spring boot 3集成swagger

Spring Boot 3 集成 Swagger 的过程与之前版本相比有一些变化&#xff0c;主要是因为 springfox 库已经停止更新&#xff0c;并且不再支持新的 Spring Boot 版本。因此&#xff0c;对于 Spring Boot 3 来说&#xff0c;推荐使用 springdoc-openapi 作为集成 Swagger 的解决方案…...

【PlantUML系列】状态图(六)

一、状态图的组成部分 状态&#xff1a;对象在其生命周期内可能处于的条件或情形&#xff0c;使用 state "State Name" as Statename 表示。初始状态&#xff1a;表示对象生命周期的开始&#xff0c;使用 [*] 表示。最终状态&#xff1a;表示对象生命周期的结束&…...

前端缓存页面处理方法

当前一个前端应用新发布时&#xff0c;重新编译后&#xff0c;原来引用的资源文件名都会有变化。如果这个应用的页面在前端浏览器中有缓存&#xff0c;则会导致加载资源失败。怎样去除这种缓存&#xff0c;同时也能尽可能的保证前端访问的性能 ChatGPT said: ChatGPT 这是一个经…...

每日一题 284. 窥视迭代器

284. 窥视迭代器 想要提前知道下一个内容&#xff0c;就需要缓存 class PeekingIterator : public Iterator { public:PeekingIterator(const vector<int>& nums) : Iterator(nums) {// Initialize any member here.// **DO NOT** save a copy of nums and manipula…...

Cesium-(Primitive)-(BoxGeometry)

含实现代码 GISer世界 效果: 以下是 BoxGeometry 类的构造函数属性,以表格形式展示: 属性名类型默认值描述minimumCartesian3盒子的最小 x, y, 和 z 坐标。maximumCartesian3盒子的最大 x, y, 和 z 坐标。vertexFormatVertexFormatVertexFormat.DEFAULT要计算的顶点属性。以下…...

CSS元素宽高特点、类型转化、显式和隐藏(display)

元素的宽高特点 块级元素 可以设置宽高&#xff0c;不可以和其他元素在一行设置宽高时&#xff0c;元素的宽高为设置的值没有设置宽高时&#xff0c;宽度和父级宽高一样&#xff0c;高度由元素内容决定 行级元素 不可以设置宽高&#xff0c;可以和其他元素在一行元素的宽高…...

上市公司投资效率Biddle模型数据(包括最终数据、原始数据及构造说明)2003-2022年

一、计算方式&#xff1a;参考《Journal of accounting and economics》Biddle G C&#xff0c;构建Biddle模型使用企业投资对成长机会的回归模型来估计企业的投资效率&#xff0c;这里成长机会用销售增长率来衡量。回归模型如下图所示: 二、资料范围&#xff1a;包括原始数据…...

矩阵的乘(包括乘方)和除

矩阵的乘分为两种&#xff1a; 一种是高等代数中对矩阵的乘的定义&#xff1a;可以去这里看看包含矩阵的乘。总的来说&#xff0c;若矩阵 A s ∗ n A_{s*n} As∗n​列数和矩阵 B n ∗ t B_{n*t} Bn∗t​的行数相等&#xff0c;则 A A A和 B B B可相乘&#xff0c;得到一个矩阵 …...

Spring Security6.3 自定义AuthorizationManager问题

项目环境&#xff1a; Springboot3.3.5, 对应的SpringFrameWork6.1&#xff0c;Security为6.3 问题&#xff1a;我想自定义AuthorizationManager接口实现类&#xff0c;在里面判断如果角色为amdin则放行请求&#xff1b; 在AdminAuthorizationManager类的check()方法中pass变量…...

第一部分:基础知识 9 . 视图 --[MySQL轻松入门教程]

在MySQL中,视图(View)是一个命名的SQL查询,它被存储在数据库目录中。视图可以包含来自一个或多个表的数据,并且可以像真实表一样被查询。下面是对MySQL视图的详细讲解: 创建视图 使用 CREATE VIEW 语句来创建视图。语法如下: CREATE [OR REPLACE] [ALGORITHM = {UNDEFIN…...

用GPT零负担学单片机之点亮一颗cpu 第3节 训练or特征匹配?用GPT开发嵌入式

用GPT零负担学单片机之点亮一颗cpu 第3节 训练or特征匹配?AI写代码 大家好,我是小杰学长 如果你是大学生 遇到电子技术 学习 成长 入行难题 我曾经通过大学比赛赚钱 从事嵌入式AI 航天军工 用特别的学习和求职方法线下半年带50+学弟学妹入行开发 主页佳喔威信,给你提供一定资…...

2.6、vue2中侦听属性的变化

2.6.1、侦听属性作用侦听属性的变化其实就是监视某个属性的变化。当被监视的属性一旦发生改变时,执行某段代码。2.6.2、watch配置项监视属性变化时需要使用watch配置项 可以监视多个属性,监视哪个属性,请把这个属性的名字拿过来即可。 i.可以监视Vue的原有属性 ii.如果监视的…...

enable_shared_from_this

用途 struct S {shared_ptr<S> dangerous(){return shared_ptr<S>(this); // dont do this!} };int main() {shared_ptr<S> sp1(new S);shared_ptr<S> sp2 sp1->dangerous();return 0; }考虑以上代码&#xff0c;从一个被shared_ptr管理的struc…...

重生之我在异世界学智力题(2)

大家好&#xff0c;这里是小编的博客频道 小编的博客&#xff1a;就爱学编程 很高兴在CSDN这个大家庭与大家相识&#xff0c;希望能在这里与大家共同进步&#xff0c;共同收获更好的自己&#xff01;&#xff01;&#xff01; 本文目录 引言智力题&#xff1a;逃离孤岛智力题&a…...

深入解析下oracle的number底层存储格式

oracle数据库中&#xff0c;number数据类型用来存储数值数据&#xff0c;它既可以存储负数数值&#xff0c;也可以存储正数数值。相对于其他类型数据&#xff0c;number格式的数据底层存储格式要复杂得多。今天我们就详细探究下oracle的number底层存储格式。 一、环境搭建 1.…...

prometheus

1.安装&#xff0c;tar包&#xff0c;解压即用 tar xf prometheus-2.33.3.linux-amd64.tar.gz -C /app/tools/ 2.创建软链接 ln -s prometheus-2.33.3.linux-amd64/ /app/tools/prometheus 3.进入目录 cd /app/tools/prometheus 4.运行 ./prometheus 5.此时&#xff0…...

C# 23种设计模式(1)单例模式(单件模式)

一、单例模式介绍 单例模式&#xff08;Singleton Pattern&#xff09;是一种创建型设计模式&#xff0c;它确保一个类只有一个实例&#xff0c;并提供一个全局访问点。这个模式在需要一个对象被共享且全局唯一的情况下非常有用&#xff0c;比如配置对象、日志对象、数据库连接…...

Javaweb:HTML、CSS

学习 资源1 学习资源 2 黑马javaweb HTML 1、基础标签、样式 图片标签&#xff1a;<img> src:绝对路径、相对路径(绝对磁盘路径&#xff0c;网络路径&#xff1b;./当前目录&#xff09;width:宽度&#xff08;百分比&#xff09;height:高度&#xff08;百分比&…...

SmartDV将SDIO系列IP授权给RANiX开发车联网(V2X)产品

双方的合作将增强符合ISO 26262标准的车联网&#xff08;V2X&#xff09;系统的通信和连接能力&#xff0c;加速实现更安全、更智能的汽车系统和车辆创新 加利福尼亚州圣何塞市&#xff0c;2024年12月——灵活、高度可配置、可定制化的半导体设计知识产权&#xff08;IP&#…...

【Android】创建型设计模式—单例模式、工厂模式、建造者模式

单例模式 单例模式&#xff08;Singleton Pattern&#xff09;是一种创建型设计模式&#xff0c;它确保一个类只有一个实例&#xff0c;并提供全局访问点。 单例模式类图&#xff1a; #mermaid-svg-kzf6IdXdYeNOHtP0 {font-family:"trebuchet ms",verdana,arial,sa…...

ida9pro压缩包

资源类型的博客大部分都是为了自己某天换新机了用 下载链接2&#xff1a;ida9.zip 下载链接1&#xff1a;https://mega.nz/folder/yiAiVDAa#T0kogEE7ufqy0x0EpCuOLQ 主目录下该文件为证书文件 ida9中选择它&#xff0c;就可以了...

前端入门之VUE--vue组件化编程

前言 VUE是前端用的最多的框架&#xff1b;这篇文章是本人大一上学习前端的笔记&#xff1b;欢迎点赞 收藏 关注&#xff0c;本人将会持续更新。 文章目录 2、Vue组件化编程2.1、组件2.2、基本使用2.2.1、VueComponent 2、Vue组件化编程 2.1、组件 组件&#xff1a;用来实现…...

C++是如何工作的?

首先来看一个最基本的C程序段。 #include <iostream>int main() {std::cout << "HelloWorld" << std::endl;std::cin.get(); } 第一行 #include 的含义是预处理的意思&#xff0c;这条语句的作用是将一个名为iostream的文件拷贝到源代码中这个…...

JavaScript中的this, 究竟指向什么?

在JavaScript代码的不同位置中&#xff0c;this所指向的数据是不一样的。比如大部分同学都知道&#xff0c;在对象的函数属性方法中&#xff0c;this指向对象本身&#xff1b;在构造函数中&#xff0c;this指向要生成的新对象。事实上&#xff0c;this指向的逻辑不止这几种&…...

JavaWeb学习(3)(Servlet详细、Servlet的三种实现方式(面试)、Servlet的生命周期、传统web.xml配置Servlet(了解))

目录 一、Servlet详细。 &#xff08;1&#xff09;基本介绍。 &#xff08;2&#xff09;基本作用。 1、接收客户端请求数据。 2、处理请求。 3、完成响应结果。 二、Servlet的三种实现方式。 &#xff08;1&#xff09;实现javax.servlet.Servlet接口。 1、基本介绍。 2、代码…...

【图像去雾数据集】URHI数据集介绍

URHI数据集对应论文&#xff1a;RESIDE: A Benchmark for Single Image Dehazing&#xff08;2017&#xff09; URHI数据集下载链接&#xff1a;https://sites.google.com/site/boyilics/website-builder/reside 为便于下载&#xff0c;将上述官方提供的链接中百度云链接粘贴如…...

Playwright中Page类的方法

导航和页面操作 goto(url: str, **kwargs: Any): 导航到一个URL。 reload(**kwargs: Any): 重新加载当前页面。 go_back(**kwargs: Any): 导航到会话历史记录中的前一个页面。 go_forward(**kwargs: Any): 导航到会话历史记录中的下一个页面。 set_default_navigation_tim…...

算力介绍与解析

算力&#xff08;Computing Power&#xff09;是指计算机系统在单位时间内处理数据和执行计算任务的能力。算力是衡量计算机性能的重要指标&#xff0c;直接影响计算任务的速度和效率。 算力的分类和单位 a. 基础算力&#xff1a;以CPU的计算能力为主。适用于各个领域的计算。…...

CentOS 上如何查看 SSH 服务使用的端口号?

我们知道&#xff0c;linux操作系统中的SSH默认情况下&#xff0c;端口是使用22&#xff0c;但是有些线上服务器并不是使用的默认端口&#xff0c;那么这个时候&#xff0c;我们应该如何快速知道SSH使用的哪个端口呢&#xff1f; 1、通过配置文件查看 cat /etc/ssh/sshd_confi…...

每日算法Day03

1.19.删除链表的倒数第N个节点 算法链接: 19. 删除链表的倒数第 N 个结点 - 力扣&#xff08;LeetCode&#xff09; 类型: 链表 难度: 中等 思路&#xff1a;采用双指针法&#xff0c;控制两个指针之间的距离为n个节点 易错点&#xff1a;返回节点的确定和头节点的处理&…...

【漏洞复现】Apache Solr 身份认证绕过导致任意文件读取漏洞复现(CVE-2024-45216)

🏘️个人主页: 点燃银河尽头的篝火(●’◡’●) 如果文章有帮到你的话记得点赞👍+收藏💗支持一下哦 【漏洞复现】Apache Solr 身份认证绕过导致任意文件读取漏洞复现(CVE-2024-45216) 一、漏洞概述1.1漏洞简介1.2组件描述1.3漏洞描述二、漏洞复现2.1 应用协议2.2 环境…...

若依将数据库更改为SQLite

文章目录 1. 添加依赖项2. 更新配置文件 application-druid.yml2.1. 配置数据源2.2. 配置连接验证 3. 更新 MybatisPlusConfig4. 解决 mapper 中使用 sysdate() 的问题4.1. 修改 BaseEntity4.2. 修改 Mapper 5. 更新 YML 配置 正文开始&#xff1a; 前提条件&#xff1a;在您的…...

ubuntu远程桌面开启opengl渲染权限

背景 最近用windows的【远程桌面连接】登录ubuntu后&#xff08;xrdp协议&#xff09;&#xff0c;发现gl环境是集显的&#xff0c;但是本地登录ubuntu桌面后是独显&#xff08;英伟达&#xff09;&#xff0c;想要在远程桌面上也用独显渲染环境。 一、查看是独显还是集显环境…...

Scala的泛型

需求:定义一个名为getMiddleEle 的方法用它来获取当前的列表的中间位置的值中间位置的下标 长度/2目标:getMiddleEle(List(1,2,3,4,5)) > 5/2 2 > 下标为2的元素是:3 getMiddleEle(List(1,2,3,4)) > 4/2 2 > 下标为2的元素是:3格式如下: 定义一个函数的格式:def…...

每隔一秒单片机向电脑发送一个16进制递增数据

SCON0x50 SM00 SM11&#xff08;工作方式为方式一&#xff09; REN1允许单片机从电脑接收数据 TB8 RB8 SM2是方式2和方式3直接配置为0 TI为发送中断请求标志位 由硬件配置为1 必须由 软件复位为0&#xff0c;RI为接收中断请求标志位&#xff0c;同理TI UART.c #include &l…...

轻量级日志管理平台:Grafana Loki搭建及应用(详细篇)

前言 Grafana Loki是Grafana Lab团队提供的一个水平可扩展、高可用性、多租户的日志聚合系统&#xff0c;与其他日志系统不同的是&#xff0c;Loki最初设计的理念是为了为日志建立标签索引&#xff0c;而非将原日志内容进行索引。 现在目前成熟的方案基本上都是&#xff1a;L…...

React和Vue.js的相似性和差异性是什么?

React和Vue.js都是现代前端开发中广泛使用的JavaScript框架&#xff0c;它们都旨在提高开发效率和组件化开发。以下是他们的一些相似性和差异性&#xff1a; 相似性 组件化&#xff1a;两者都支持组件化开发&#xff0c;允许开发者将UI拆分成独立的、可复用的组件。虚拟DOM&a…...

跨域 Cookie 共享

跨域请求经常遇到需要携带 cookie 的场景&#xff0c;为了确保跨域请求能够携带用户的认证信息或其他状态&#xff0c;浏览器提供了 withCredentials 这个属性。 如何在 Axios 中使用 withCredentials 为了在跨域请求中携带 cookie&#xff0c;需要在 Axios 配置中设置 withCr…...

全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之计数器与累加器(一)

学习背景&#xff1a; 在现实生活中一些需要计数的场景下我们会用到计数器&#xff0c;如空姐手里记录乘客的计数器&#xff0c;跳绳手柄上的计数器等。累加器是累加器求和&#xff0c;以得到最后的结果。计数器和累加器它们虽然是基础知识&#xff0c;但是应用广泛&#xff0…...

红黑树(Red-Black Tree)

一、概念 红黑树&#xff08;Red Black Tree&#xff09;是一种自平衡的二叉搜索树&#xff0c;通过添加颜色信息来确保在进行插入和删除操作时&#xff0c;树的高度保持在对数级别&#xff0c;从而保证了查找、插入和删除操作的时间复杂度为 O(log n)。这种树可以很好地解决普…...

火电厂可视化助力提升运维效率

图扑智慧火电厂综合管理平台实现对火电厂关键设备和系统的实时监控和数据分析。图扑可视化不仅优化了运维流程&#xff0c;还增强了安全管理&#xff0c;有效提升了电厂整体运营效率。...

application.yml 和 bootstrap.yml

在 Spring Boot 中&#xff0c;application.yml 和 bootstrap.yml 都是用来配置应用程序的属性文件&#xff0c;通常用于环境配置、服务配置等。但是&#xff0c;它们有一些不同的用途和加载顺序。以下是它们之间的主要区别&#xff1a; 1. application.yml&#xff1a; 主要…...

电子应用设计方案-49:智能拖把系统方案设计

智能拖把系统方案设计 一、引言 随着人们生活水平的提高和对清洁效率的追求&#xff0c;智能拖把作为一种创新的清洁工具应运而生。本方案旨在设计一款功能强大、操作便捷、清洁效果出色的智能拖把系统。 二、系统概述 1. 系统目标 - 实现自动清洁地面&#xff0c;减轻用户劳…...

Model Context Protocol 精选资源列表

Model Context Protocol 精选资源列表 Model Context Protocol 精选资源列表什么是MCP&#xff1f;教程社区说明服务器实现&#x1f4c2; 浏览器自动化☁️ 云平台&#x1f4ac; 社交&#x1f464; 数据平台&#x1f5c4;️ 数据库&#x1f4bb; 开发者工具&#x1f9ee; 数据科…...

Windows 11 12 月补丁星期二修复了 72 个漏洞和一个零日漏洞

微软于 2024 年 12 月为 Windows 11 发布的补丁星期二修复了其产品生态系统中的 72 个漏洞&#xff0c;包括 Windows 通用日志文件系统驱动程序中一个被积极利用的零日漏洞。 这个严重漏洞可以通过基于堆的缓冲区溢出授予攻击者系统权限&#xff0c;使其成为此版本中优先级最高…...

Python毕业设计选题:基于Hadoop 的国产电影数据分析与可视化_django+spider

开发语言&#xff1a;Python框架&#xff1a;djangoPython版本&#xff1a;python3.7.7数据库&#xff1a;mysql 5.7数据库工具&#xff1a;Navicat11开发软件&#xff1a;PyCharm 系统展示 管理员登录 管理员功能界面 用户管理 免费电影管理 在线论坛 留言反馈 看板展示 系统…...

蓝桥杯我来了

最近蓝桥杯报名快要截止了&#xff0c;我们学校开始收费了&#xff0c;我们学校没有校赛&#xff0c;一旦报名缴费就是省赛&#xff0c;虽然一早就在官网上报名了&#xff0c;但是一直在纠结&#xff0c;和家人沟通&#xff0c;和朋友交流&#xff0c;其实只是想寻求外界的支持…...

大模型qiming面试内容整理-编码能力评估

编码能力评估是大模型相关岗位面试中非常关键的一环,面试官通常希望通过这个环节了解候选人对编程语言、算法与数据结构的掌握情况,以及其在实践中解决实际问题的能力。以下是编码能力评估的常见内容和类型,特别是针对机器学习、大模型和深度学习方向: 编程语言熟练度 ● P…...

Vivado ILA数据导出MATLAB分析

目录 ILA数据导出 分析方式一 分析方式二 有时候在系统调试时&#xff0c;数据在VIVADO窗口获取的信息有限&#xff0c;可结合MATLAB对已捕获的数据进行分析处理 ILA数据导出 选择信号&#xff0c;单击右键后&#xff0c;会有export ILA DATA选项&#xff0c;将其保存成CS…...

Linux内核 -- 字符设备之read write poll基本实现

Linux字符设备&#xff1a;read、write和poll函数实现及完整代码 1. read函数 原型 ssize_t read(struct file *file, char __user *buf, size_t count, loff_t *pos);实现步骤 检查用户缓冲区&#xff1a;使用copy_to_user将数据从内核空间复制到用户空间。返回已读取的字…...