兼容SringBoot 3.X版本的 API工具(Springdoc)

       前言 

        逆水行舟,不进则退!!!   

        Springfox 目前最新的还是3.0的版本, 只支持SpringBoot 2.X的版本, 

        SpringDoc 目前最新的版本支持 SpringBoot3.X + JDK17   


       pom依赖      

        最简单的使用方式就是引入依赖, 然后在控制器上加上对应的注解, 就可以了

        <dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-starter-webmvc-ui</artifactId><version>2.1.0</version></dependency><dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-starter-webmvc-api</artifactId><version>2.1.0</version></dependency>

         控制器上的注解


@RestController
@Tag(name = "hello")
@RequestMapping("/test")
public class TestController {@PostMapping("/helloByName")@Operation(summary = "概要", description = "通过name来获取信息")public String helloByName(String name) {return "hello : " + name;}

        检验测试

        http://127.0.0.1:port/swagger-ui/index.html#/控制器路径

        

        Springfox 到 Springdoc注解的迁移

@Api               --->    @Tag,用于标记一组相关的操作。@ApiIgnore         --->    @Parameter(hidden = true)、@Operation(hidden = true) 或 @Hidden 替代@ApiImplicitParam  --->    @Parameter,用于描述方法的输入参数。@ApiImplicitParams --->    @Parameters,用于将多个参数组合在一起。@ApiModel          --->    @Schema,用于描述模型类。@ApiModelProperty(hidden = true)             --->     @Schema(accessMode = READ_ONLY),用于标记模型属性为只读。@ApiModelProperty  --->    @Schema,用于描述模型属性。@ApiOperation(value = "foo", notes = "bar")  --->     @Operation(summary = "foo", description = "bar"),用于描述 API 操作。@ApiParam          --->    @Parameter,用于描述方法的参数。@ApiResponse(code = 404, message = "foo")    --->     @ApiResponse(responseCode = "404", 
description = "foo"),用于描述 API 响应。

       更细化的配置

        在配置层 添加配置类 OpenApiConfig

        

package com.yu.forum.config;import io.swagger.v3.oas.models.Components;
import io.swagger.v3.oas.models.ExternalDocumentation;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Contact;
import io.swagger.v3.oas.models.info.Info;
import io.swagger.v3.oas.models.info.License;
import io.swagger.v3.oas.models.media.StringSchema;
import io.swagger.v3.oas.models.parameters.Parameter;
import io.swagger.v3.oas.models.security.SecurityRequirement;
import io.swagger.v3.oas.models.security.SecurityScheme;
import org.springdoc.core.configuration.SpringDocConfiguration;
import org.springdoc.core.models.GroupedOpenApi;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;import java.util.Collections;@Configuration
public class OpenApiConfig {@Beanpublic OpenAPI openApi() {return new OpenAPI().info(new Info().title("文档标题").description("文档描述").contact(new Contact().name("作者").email("邮箱").url("可以写你的博客地址或不填")).version("v2.0"));}}

        配置yml文件

springdoc:api-docs:# 是否开启接口文档enabled: trueswagger-ui:# 持久化认证数据,如果设置为 true,它会保留授权数据并且不会在浏览器关闭/刷新时丢失persistAuthorization: true

   未完待更新


       小标题 


       小标题 


        我是专注学习的章鱼哥~

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

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

相关文章

元宇宙的军事应用

目前&#xff0c;“元宇宙”在军事领域的首要用途&#xff0c;是作为模拟训练的“赋能器”。在全球军事领域&#xff0c;美军最早用虚拟仿真开展军事训练。数十年来&#xff0c;美军一直力图打造一个完全模拟现实场景、沉浸式、无缝整合的“虚拟战场系统”。作为新兴技术的集大…

HW面试应急响应之场景题

(1)dns 报警就一定是感染了吗&#xff1f;怎么处理&#xff1f; 不一定。 引起dns报警的情况有&#xff1a;恶意软件感染&#xff0c;域名劫持&#xff0c;DNS欺骗&#xff0c;DDoS攻击等。 处理方法&#xff1a; 1、分析报警&#xff0c;查看报警类型、源IP地址、目标域名等…

使用freebsd-update 升级FreeBSD

为了学习使用AppJail&#xff0c;升级FreeBSD&#xff0c;从14.1-BETA3升级到14.1-RELEASE 当前最新的发布版本是14.1-RELEASE&#xff0c;所以upgrade后面跟了-r 版本号。 使用命令freebsd-update upgrade -r 14.1-RELEASE&#xff1a; freebsd-update upgrade -r 14.1-R…

彻底吃透A*算法的最优性

下面的博客将主要介绍A*算法在扩展结点&#xff08;这对于寻路时间很重要&#xff09;和总代价&#xff08;这对于保证最后解的最优性很重要&#xff09;上的最优性&#xff0c;并将淡化对A *完备性的介绍。 A* 算法流程 A*算法的流程如下[1]&#xff1a; 并定义 f ( n ) f(n…

Pytorch中的广播机制

一、广播(broadcast)机制概述 在PyTorch中&#xff0c;广播机制(Broadcast)允许对不同形状的张量执行逐元素操作&#xff0c;而无需显式地复制数据。这一机制使得编写代码更加简洁和高效。广播机制遵循一定的规则来扩展较小的张量&#xff0c;使其与较大的张量具有相同的形状 …

DNS解析与Bond

一、DNS 1、DNS概念 DNS是域名系统的简称&#xff1a;域名和ip地址之间的映射关系互联网中IP地址是通信的唯一标识&#xff0c;逻辑地址访问网站&#xff0c;有域名&#xff0c;ip地址不好记&#xff0c;域名朗朗上口&#xff0c;好记。 域名解析的目的&#xff1a;实现访问…

LeetCode 算法:最大子数组和c++

原题链接&#x1f517;&#xff1a;最大子数组和 难度&#xff1a;中等⭐️⭐️ 题目 给你一个整数数组 nums &#xff0c;请你找出一个具有最大和的连续子数组&#xff08;子数组最少包含一个元素&#xff09;&#xff0c;返回其最大和。 子数组是数组中的一个连续部分。 …

面试高频问题----3

一、非对称加密和对称加密具体算法和使用场景 对称加密算法&#xff1a;发端和收端共享同一个密钥&#xff0c;使用该密钥进行加密和解密。适用于数据量大的数据传输中&#xff1b; 非对称加密算法&#xff1a;有一个公钥&#xff0c;一个私钥&#xff1b;发端和收端不需要共…

05-JavaScript 中的 `tap` 和 `click` 事件

JavaScript 中的 tap 和 click 事件 笔记分享 在现代Web开发中&#xff0c;尤其是针对移动设备的开发&#xff0c;处理用户交互事件是一个重要的挑战。尽管 click 事件在桌面浏览器中广泛使用&#xff0c;但 tap 事件在移动设备上提供了更合适的用户体验。这篇文章将深入探讨 …

JVM之【字节码/Class文件/ClassFile 内容解析】

说在前面的话 Java语言:跨平台的语言(write once,run anywhere) 当Java源代码成功编译成字节码后&#xff0c;如果想在不同的平台上面运行&#xff0c;则无须再次编译这个优势不再那么吸引人了。Python、PHP、Perl、Ruby、Lisp等有强大的解释器。跨平台似乎已经快成为一门语言…

Vue 3 Teleport:掌控渲染的艺术

title: Vue 3 Teleport&#xff1a;掌控渲染的艺术 date: 2024/6/5 updated: 2024/6/5 description: 这篇文章介绍了Vue3框架中的一个创新特性——Teleport&#xff0c;它允许开发者将组件内容投送到文档对象模型&#xff08;DOM&#xff09;中的任意位置&#xff0c;即使这个位…

房地产3d全景数字化看房成为转发的好工具

在短视频盛行的时代&#xff0c;某地产企业为了吸引客流&#xff0c;联合我们深圳VR公司定制了楼盘小区3D全景展示视频&#xff0c;不同于市面上常见的楼盘视频或3D电影&#xff0c;楼盘小区3D全景展示视频让您在小区建成之前&#xff0c;就能提前感受未来的生活场景。 无需昂贵…

C++第三方库【httplib】断点续传

什么是断点续传 上图是我们平时在浏览器下载文件的场景&#xff0c;下载的本质是数据的传输。当出现网络异常&#xff0c;浏览器异常&#xff0c;或者文件源的服务器异常&#xff0c;下载都可能会终止。而当异常解除后&#xff0c;重新下载文件&#xff0c;我们希望从上一次下载…

【技巧】系统语音是英文 影刀如何设置中文-作者:【小可耐教你学影刀RPA】

写在前面 嘿哈&#xff01; 有些跨境或香港的小伙伴&#xff0c;可能需要使用英文操作界面的影刀 该功能目前还没有现成的可视化按钮&#x1f518; 但其实这个效果可以实现&#xff5e; 1、效果图 2、实现原理 %影刀安装目录%\ShadowBot-版本号\ShadowBot.Shell.dll.confi…

2024050401-重学 Java 设计模式《实战代理模式》

重学 Java 设计模式&#xff1a;实战代理模式「模拟mybatis-spring中定义DAO接口&#xff0c;使用代理类方式操作数据库原理实现场景」 一、前言 难以跨越的瓶颈期&#xff0c;把你拿捏滴死死的&#xff01; 编程开发学习过程中遇到的瓶颈期&#xff0c;往往是由于看不到前进…

机器学习:更多关于元学习

目录 Meta Learning vs Self-supervised Learning 自监督学习——找初始化的参数MAML 自动学出合适的参数 MAML&#xff1a;不断的学初始化参数MAML的初始化参数来自BERT MAML&#xff1a;找出来的初始化参数能在训练任务上表现的很好BERT&#xff1a;自监督目标是不同的下游任…

odoo10 权限控制用户只允许看到自己的字段

假设一个小区管理员用户&#xff0c;只想看到自己小区的信息。 首先添加一个用户信息选项卡界面&#xff0c;如下图的 用户 > 隶属信息&#xff1a; 我们在自己创建的user模块中&#xff0c;views文件夹下添加base_user.xml <?xml version"1.0" encoding&q…

Leetcode:最接近的三数之和

题目链接&#xff1a;16. 最接近的三数之和 - 力扣&#xff08;LeetCode&#xff09; 普通版本&#xff08;排序 双指针&#xff09; 主旨&#xff1a;最近值即为差值的绝对值最小值 class Solution { public:int threeSumClosest(vector<int>& nums, int target…

DBSCAN 算法【python,机器学习,算法】

DBSCAN 即 Density of Based Spatial Clustering of Applications with Noise&#xff0c;带噪声的基于空间密度聚类算法。 算法步骤&#xff1a; 初始化&#xff1a; 首先&#xff0c;为每个数据点分配一个初始聚类标签&#xff0c;这里设为0&#xff0c;表示该点尚未被分配…

Angular17(2):angular项目中使用NG-ZORRO

1、使用Angular CLI创建空项目 ng new angular-admin-web --stylescss 2、执行ng add ng-zorro-antd命令安装 &#xff08;1&#xff09;ng add ng-zorro-antd 在angular项目下运行命令 ng add ng-zorro-antd 跟随选项便可完成初始化配置&#xff0c;包括引入国际化文件&…