springdoc-openapi-ui 整合 knife,多模块分组,脚手架
pom文件:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.2</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>demo</artifactId><version>0.0.1-SNAPSHOT</version><name>2023_demo</name><description>2023_demo</description><properties><java.version>11</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-ui</artifactId><version>1.6.11</version></dependency><dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-springdoc-ui</artifactId><version>3.0.3</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><excludes><exclude><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></exclude></excludes></configuration></plugin></plugins></build><repositories><repository><id>aliyun-repo</id><name>aliyun</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url></repository></repositories></project>
yum文件:
server:port: 18080springdoc:swagger-ui:enabled: true # 开关doc-expansion: none #关闭展开api-docs:enabled: true # 开关
swagger配置文件
package com.example.demo.config;import io.swagger.v3.oas.annotations.OpenAPIDefinition;
import io.swagger.v3.oas.annotations.info.Info;
import io.swagger.v3.oas.models.parameters.Parameter;
import org.springdoc.core.GroupedOpenApi;
import org.springdoc.core.customizers.OperationCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;/*** @description* @author * @since 2023/8/31*/
@Configuration
@OpenAPIDefinition(info = @Info(title = "springDoc + knife 集成测试", version = "1.0",description = "swagger基础项目脚手架")
)
public class SwaggerConfig {@Beanpublic GroupedOpenApi usercApi() {return GroupedOpenApi.builder().group("用户管理").packagesToScan("com.example.demo.system").pathsToMatch("/**").build();}@Beanpublic GroupedOpenApi biApi(OperationCustomizer operationCustomizer) {return GroupedOpenApi.builder().group("报表管理").packagesToScan("com.example.demo.bi").pathsToMatch("/**").addOperationCustomizer(operationCustomizer).build();}@Beanpublic OperationCustomizer operationCustomizer() {return (operation, handlerMethod) -> operation.addParametersItem(new Parameter().in("header").required(true).description("token 验证").name("token"));}// @Bean
// public OpenApiCustomiser customerGlobalHeaderOpenApiCustomise() {
// Parameter passwordParameter = new Parameter().name("password").description("密码").in(ParameterIn.QUERY.toString()).schema(new Schema<>().type("string"));
// Parameter usernameParameter = new Parameter().name("username").description("用户名").in(ParameterIn.QUERY.toString()).schema(new Schema<>().type("string"));
// ApiResponse apiResponse = new ApiResponse().content(new Content().addMediaType("*/*", new MediaType()));
// PathItem pathItem = new PathItem().post(new Operation().summary("登录").tags(CollUtil.newArrayList("system/auth")).description("系统管理/鉴权接口").responses(new ApiResponses()
// .addApiResponse("default", apiResponse))
// .parameters(CollUtil.newArrayList(usernameParameter, passwordParameter)));
// return openApi -> openApi.path("/auth/login", pathItem);
//
// }
}
访问swagger-ui:

访问doc.html: http://localhost:18080/doc.html

相关文章:
springdoc-openapi-ui 整合 knife,多模块分组,脚手架
pom文件: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.o…...
04-MySQL02
1、什么是索引下推? 索引下推(index condition pushdown )简称ICP,在Mysql5.6的版本上推出,用于优化查询。 需求: 查询users表中 "名字第一个字是张,年龄为10岁的所有记录"。 SELECT * FROM u…...
实现跨境电商测评和采退、LU卡、LU货最安全的系统方案
首先你要有一个稳定的测评环境系统,这个是做自养号退款、撸货、撸卡的基础。测评环境系统有很多,从早期的虚拟机,模拟机,云手机,VPS等等。这些系统方案先不说成本高,最重要的是成功率很低,所以一…...
软件生命周期及流程
软件生命周期: 软件生命周期(SDLC,Systems Development Life Cycle)是软件开始研制到最终被废弃不用所经历的各个阶段. 需求分析阶段--输出需求规格说明书(原型图) 测试介入的晚--回溯成本高 敏捷开发模型: 从1990年…...
nginx使用详解
文章目录 一、前言二、nginx使用详解2.1、nginx特点2.2 静态文件处理2.3 反向代理2.4 负载均衡2.5 高级用法2.5.1 正则表达式匹配2.5.2 重定向 三、总结 一、前言 本文将详细介绍nginx的各个功能使用,主要包括 二、nginx使用详解 2.1、nginx特点 高性能ÿ…...
YOLOV7 添加 CBAM 注意力机制
用于学习记录 文章目录 前言一、CBAM1.1 models/common.py1.2 models/yolo.py1.3 yolov7/cfg/training/CBAM.yaml2.4 CBAM 训练结果图 前言 一、CBAM CBAM: Convolutional Block Attention Module 1.1 models/common.py class ChannelAttention(nn.Module):def __init__(sel…...
【SpringSecurity】七、SpringSecurity集成thymeleaf
文章目录 1、thymeleaf2、依赖部分3、定义Controller4、创建静态页面5、WebSecurityConfigurerAdapter6、权限相关7、当用户没有某权限时,页面不展示该按钮 1、thymeleaf 查了下读音,leaf/li:f/,叶子,前面的单词发音和时间time一…...
Go语言中的数组、切片和映射解析
目录 数组数组的声明数组循环 切片切片声明切片元素循环 映射Map的声明及初始化Map的遍历 数组 数组存放的是固定长度、相同类型的数据,而且这些存放的元素是连续的。 数组的声明 例如声明一个整形数组: array : [3]int{1, 2, 3}在类型名前加 [] 中括…...
MySql学习笔记03——DQL(数据查询)基本命令
DQL 导入数据 首先使用use database进入数据库中,然后使用命令 source D:\mysql_learning\mysql_learning\document\bjpowernode.sql注意文件名不能有双引号,命令结尾没有分号。 SQL脚本 .sql文件是SQL脚本文件,它里面的内容都是SQL语句…...
操作系统的四大特性
一、并发性 指操作系统同时运行着多个程序,这些程序宏观上是同时运行的,但微观上其实是交替运行的 补充1:并发性区别于并行性 并发是指两个或多个事件在同一时间间隔内发生,事件宏观上是同时进行的,围观上市交替进行的…...
旅游攻略APP外包开发功能
旅游攻略APP是帮助旅行者计划和享受旅行的工具,下面列出了一些常见的旅游攻略APP功能,以及在上线这类应用时需要注意的问题,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 常见…...
Apollo在Java中的使用
本节主要讲解在普通的 Java 项目和 Spring Boot 中如何使用 Apollo。 普通 Java 项目中使用 加入 Apollo Client 的 Maven 依赖,代码如下所示。 <dependency><groupId>com.ctrip.framework.apollo</groupId><artifactId>apollo-client<…...
Elasticsearch 全文搜索引擎 ---- IK分词器
原理:分词的原理:二叉树 首先讲一下为什么要出这个文章,前面我们讲过分词方法:中文分词搜索 pscws(感兴趣的同学可以去爬楼看一下),那为什么要讲IK分词?最主要的原因是&…...
Layer 2盛夏已至,StarkNet如何实现价值跃迁?
作者|Jason Jiang Layer 2概念在2023年夏天迎来爆发。Coinbase、ConsenSys等加密巨头纷纷下场,其部署的原生L2解决方案Base、Linea在过去两个月内相继完成主网上线;被誉为L2 四大天王之一的StarkNet也在夏天顺利完成“量子跃迁”升级&#x…...
KaiwuDB 受邀亮相 2023 中国国际“软博会”
8月31日,第二十五届中国国际软件博览会(以下简称“软博会”)在天津盛大开幕。KaiwuDB 受邀亮相展会,围绕“塑造软件新生态,赋能发展新变革”主题,重点展示自研分布式多模数据库及各大行业解决方案ÿ…...
RS-485/RS-422收发器电路 DP3085 国产低成本替代MAX3085
DP3085是5V、半双工、15kV ESD 保护的 RS-485/RS-422 收发器电路,电路内部包含一路驱动器和一路接收器。 DP3085具有增强的摆率限制,助于降低输出 EMI 以及不匹配的终端连接引起的反射,实现 500kbps 的无误码数据传输。 DP3085芯片接收器输入…...
R-which函数(带有arr.ind参数)
目录 一、which()函数 二、元素位置 一、which()函数 which()函数是R语言中的一个基础函数,用于返回满足指定条件的元素的位置或索引。 语法:which(x, arr.ind FALSE, useNames TRUE) 参数: - x:一个向量、数组或矩阵&#x…...
单片机通用学习-什么是时钟?
什么是时钟? 时钟是同步单片机系统各个部件工作时序的最小时间单位,时钟通过 CPU 控制,产生其他与时钟保持一定关系的同步控制信号,协调各部件的工作时序,没有时钟系统就崩溃了。 如 CPU 与存储器(RAM&am…...
PCL入门(二):初识点云数据
目录 1. 点云数据2. 对点云数据的简单操作3. 结果 1. 点云数据 在pcl里面,定义了很多点云数据类型,比如PointXYZ、PointXYZI、PointXYZRGBA等等,每一个都可以看做是点云的一个点的数据。而整个点云的数据类型被定义为PointCloud。 以pcl::P…...
LeetCode 面试题 03.01. 三合一
文章目录 一、题目二、C# 题解 一、题目 三合一。描述如何只用一个数组来实现三个栈。 你应该实现push(stackNum, value)、pop(stackNum)、isEmpty(stackNum)、peek(stackNum)方法。stackNum表示栈下标,value表示压入的值。 构造函数会传入一个stackSize参数&#x…...
颠覆式突破限制:五大核心技术实现网盘下载加速革命
颠覆式突破限制:五大核心技术实现网盘下载加速革命 【免费下载链接】Online-disk-direct-link-download-assistant 可以获取网盘文件真实下载地址。基于【网盘直链下载助手】修改(改自6.1.4版本) ,自用,去推广…...
Alt App Installer革新:突破微软商店限制的Windows应用安装解决方案
Alt App Installer革新:突破微软商店限制的Windows应用安装解决方案 【免费下载链接】alt-app-installer A Program To Download And Install Microsoft Store Apps Without Store 项目地址: https://gitcode.com/gh_mirrors/alt/alt-app-installer 微软商店…...
抖音直播智能采集与实时分析实战指南:从数据捕获到商业决策
抖音直播智能采集与实时分析实战指南:从数据捕获到商业决策 【免费下载链接】DouyinLiveWebFetcher 抖音直播间网页版的弹幕数据抓取(2024最新版本) 项目地址: https://gitcode.com/gh_mirrors/do/DouyinLiveWebFetcher 在数字营销与内…...
PingFangSC字体实战指南:跨平台字体解决方案的最佳实践
PingFangSC字体实战指南:跨平台字体解决方案的最佳实践 【免费下载链接】PingFangSC PingFangSC字体包文件、苹果平方字体文件,包含ttf和woff2格式 项目地址: https://gitcode.com/gh_mirrors/pi/PingFangSC 行业痛点诊断 场景导入:设…...
深度学习基石:从卷积神经网络理解 Stable Yogi 的图像生成能力
深度学习基石:从卷积神经网络理解 Stable Yogi 的图像生成能力 你是不是也好奇,像 Stable Yogi 这样能“凭空”画出精美图片的模型,它的“眼睛”和“大脑”究竟是怎么工作的?为什么给它一段文字描述,它就能理解并生成…...
Cayenne-MQTT-ESP:面向IoT平台的轻量级嵌入式MQTT客户端
1. 项目概述 Cayenne-MQTT-ESP 是一个专为 ESP8266 和 ESP32 平台设计的轻量级 MQTT 客户端库,其核心目标是将嵌入式设备无缝接入 Cayenne IoT 云平台(现为 myDevices IoT Platform),实现双向数据通信与可视化控制。该库并非从零…...
EverythingPowerToys正则表达式搜索:解锁精准文件匹配的强大功能
EverythingPowerToys正则表达式搜索:解锁精准文件匹配的强大功能 【免费下载链接】EverythingPowerToys Everything search plugin for PowerToys Run 项目地址: https://gitcode.com/gh_mirrors/ev/EverythingPowerToys EverythingPowerToys是一款专为Power…...
Android14 SurfaceFlinger启动流程与线程调度机制解析
1. SurfaceFlinger的启动入口与初始化流程 Android显示系统的核心服务SurfaceFlinger由init进程启动,这个设计保证了它在系统早期就能准备好图形合成能力。main函数作为入口点,首先做了一系列关键初始化: 设置Binder线程池的最大线程数为4&…...
拒绝PPT运维!实测实在Agent:IT运维服务器监控与故障预警的“降维打击”
摘要: 在2024年IT运维体系全面迈向智能化(AIOps)的背景下,服务器监控与故障预警已不再是简单的指标采集,而是演变为对复杂业务逻辑与AI行为的深度感知。传统监控Agent(如Zabbix、Prometheus)虽稳…...
用Python和MATLAB/Simulink复现车辆二自由度模型:从理论公式到仿真验证(附代码)
从理论到实践:Python与MATLAB/Simulink实现车辆二自由度动力学仿真 在自动驾驶和车辆工程领域,理解车辆动力学模型是开发先进控制算法的基础。二自由度模型作为最简单的车辆动力学模型之一,能够有效描述车辆的侧向和横摆运动特性。本文将带您…...
