Swagger生成Api文档的增强解决方案--knife4j
方法一:
使用步骤
1.导入 knife4j 的maven坐标
在pom.xml中添加依赖
<dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId><version>4.5.0</version>
</dependency>
2.在配置类中加入 knife4j 相关配置WebMvcConfiguration.java
/*** 通过knife4j生成接口文档* @return
*/@Beanpublic Docket docket() {ApiInfo apiInfo = new ApiInfoBuilder().title("项目接口文档").version("2.0").description("项目接口文档").build();Docket docket = new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo).select().apis(RequestHandlerSelectors.basePackage("com.sky.controller")).paths(PathSelectors.any()).build();return docket;}
3. 设置静态资源映射,否则接口文档页面无法访问
WebMvcConfiguration.java
/*** 设置静态资源映射* @param registry*/protected void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");}
4.访问:localhost:8080/doc.html

完整代码如下:
package com.qing.springboot.config;import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;/*** 配置类,注册web层相关组件*/
@Configuration
@Slf4j
public class WebMvcConfiguration extends WebMvcConfigurationSupport {/*** 通过knife4j生成接口文档* @return*/@Beanpublic Docket docket() {ApiInfo apiInfo = new ApiInfoBuilder().title("项目接口文档").version("2.0").description("项目接口文档").build();Docket docket = new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo).select().apis(RequestHandlerSelectors.basePackage("com.qing.springboot.controller")).paths(PathSelectors.any()).build();return docket;}/*** 设置静态资源映射* @param registry*/@Overrideprotected void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");}
}
方法二:
1.1 Maven 依赖引入
<dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId><version>4.5.0</version>
</dependency>
1.2 application.yaml 添加配置
springdoc:default-flat-param-object: trueswagger-ui:path: /swagger-ui.htmltags-sorter: alphaoperations-sorter: alphaapi-docs:path: /v3/api-docsgroup-configs:- group: 'default'paths-to-match: '/**'packages-to-scan: com.abc.project
knife4j:enable: truesetting:language: zh_cn
1.3 添加配置文件
@Slf4j
@Configuration
public class SwaggerConfiguration implements ApplicationRunner {
@Value("${server.port:8080}")private String serverPort;@Value("${server.servlet.context-path:}")private String contextPath;
/*** 自定义 openAPI 个性化信息*/@Beanpublic OpenAPI openAPI() {return new OpenAPI().info(new Info() // 基本信息配置.title("xx系统") // 标题.description("描述信息") // 描述 Api 接口文档的基本信息.version("v1.0.0") // 版本// 设置 OpenAPI 文档的联系信息,包括联系人姓名为"dong",邮箱为"abc.qq.com".contact(new Contact().name("dong").email("abc.qq.com")));}
/*** 方便大家启动项目后可以直接点击链接跳转,而不用自己到浏览器输入路径*/@Overridepublic void run(ApplicationArguments args) throws Exception {log.info("API Document: http://127.0.0.1:{}{}/doc.html", serverPort, contextPath);}
}
友情提示:有些内容是可以根据自己的项目进行改写的,框架还有一些其他的功能,请自行学习。祝每次运行顺利!
相关文章:
Swagger生成Api文档的增强解决方案--knife4j
方法一: 使用步骤 1.导入 knife4j 的maven坐标 在pom.xml中添加依赖 <dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId><version>4.5.0</ver…...
Node.js - HTTP
1. HTTP请求 HTTP(Hypertext Transfer Protocol,超文本传输协议)是客户端和服务器之间通信的基础协议。HTTP 请求是由客户端(通常是浏览器、手机应用或其他网络工具)发送给服务器的消息,用来请求资源或执行…...
LangChain学习笔记2 Prompt 模板
安装 langchain 库 pip install langchain1、概念:提示和提示工程 在大语言模型(LLMs)时代,通过简单地更改提示中的指令,同一个模型可以执行多种任务。这一特性让 LLMs 在各类应用场景中都显得非常灵活和强大。然而&…...
如何在gitlab cicd中实现每月10号上午执行
在 GitLab CI/CD 中,可以通过设置定时触发器(Schedules)和脚本中的时间判断逻辑结合,确保任务只在每月 10 号的上午运行。 以下是实现的步骤: 1. 设置定时触发器 GitLab 提供了 Schedules 功能,可以指定每…...
SimpleFOC |SimpleFOC学习笔记汇总
在机器人领域,掌握无刷电机的控制相当于掌握机器人设计的“半壁江山”。这个年代,对个人来说学习一种新技术最好是通过开源项目了。通过开源项目快速将项目搭建起来,接着结合实践与理论才能真正掌握技术。 入门FOC,我认为最合适是…...
OpenArk64:Windows 系统分析与逆向工程工具详解
引言 在 Windows 系统的底层操作和逆向工程领域,OpenArk 是一款备受推崇的开源工具集。而 OpenArk64.exe 是 OpenArk 工具的 64 位版本,专门用于 64 位 Windows 系统。它提供了强大的功能,帮助用户深入分析系统内核、进程、文件、注册表等&a…...
数据储存与管理【大数据导论】
这里是阿川的博客,祝您变得更强 ✨ 个人主页:在线OJ的阿川 💖文章专栏:大数据入门到进阶 🌏代码仓库: 写在开头 现在您看到的是我的结论或想法,但在这背后凝结了大量的思考、经验和讨论 目录 1…...
《从零到一:搭建高效体育直播网站的全流程技术指南》
搭建一个体育直播网站需要综合考虑技术架构、数据来源、用户体验、安全性等多个层面。从整体到细节,搭建这样一个网站的流程比较复杂,但可以分成几个重要的步骤和技术环节。以下是搭建体育直播网站的技术层面准备全流程: 一、需求分析与规划 …...
松散比较(PHP)(小迪网络安全笔记~
免责声明:本文章仅用于交流学习,因文章内容而产生的任何违法&未授权行为,与文章作者无关!!! 附:完整笔记目录~ ps:本人小白,笔记均在个人理解基础上整理,…...
一文了解如何使用 DBeaver 管理 DolphinDB
在日常的数据开发、分析和数据库运维中,一款优秀的 IDE 能够极大地提升工作效率。DBEaver 是一款由 Java 编写的一站式跨平台连接器,其社区版本已能支持连接近百种数据库,受到广大开发者的喜爱。近期。DolphinDB 与 DBeaver 团队共同努力&…...
网络基础知识指南|1-20个
1. IP地址: 即互联网协议地址,是用于标识互联网上的每一个设备或节点的唯一地址。IP地址的作用主要是进行网络设备的定位和路由,确保数据包可以从源设备准确地传送到目标设备。2. 子网掩码: 是用于将一个IP地址划分为网络地址和主机地址的工具。它通常与…...
01.09周四F34-Day50打卡
文章目录 1. -我大衣呢? -就在上次你放的地方。2. 这所学校是在曾经的影院上建立起来的。3. 她今天落到这个地步都怪你。4. 留得青山在,不怕没柴烧。(一息尚存,希望不灭。)5. 有善良的地方就有美德,有美德的地方就有奇迹。(《灰姑娘》原句)6. 为了和老外说话时不再发窘,所…...
Linux简介和环境搭建
Linux 介绍和环境搭建 1、发行版本 Linux 操作系统有多个主流发行版本,每个版本根据不同的目标、特点和使用场景为用户提供了不同的功能和体验。 Ubuntu • 特点:Ubuntu 是最为人熟知的 Linux 发行版之一,强调易用性和用户友好性ÿ…...
在移动端开发图表,uniapp+echarts,需要特殊处理,使用renderjs
1.首先要创建一个组件warning,用来装图表(我排除绿色那段代码为我的需求,不是必要代码) <template> <div class="task_container"> <div class="pop_body"> <div class="footer"> <warning…...
SpringBoot之LazyInitializationBeanFactoryPostProcessor类源码学习
源码分析 /**** author Andy Wilkinson* author Madhura Bhave* author Tyler Van Gorder* author Phillip Webb* since 2.2.0* see LazyInitializationExcludeFilter** 主要用于延迟初始化 Bean 的配置。它通过修改 BeanFactory 的配置来确保某些 Bean 在实际需要时才进行初始…...
United States of America三种表示
"United States of America", "United States", 和 "America" 都表示美国,但它们的使用场景和背景略有不同。以下是关于为什么这些名称可以合在一起表示美国的详细解释: 1. "United States of America" 全称&a…...
OpenCV基于均值漂移算法(pyrMeanShiftFiltering)的水彩画特效
1、均值漂移算法原理 pyrMeanShiftFiltering算法结合了均值迁移(Mean Shift)算法和图像金字塔(Image Pyramid)的概念,用于图像分割和平滑处理。以下是该算法的详细原理: 1.1 、均值迁移(Mean …...
【C++】拷贝构造函数与运算符重载
写在前面 拷贝构造函数、赋值运算符重载、取地址运算符都是属于类的默认成员函数! 默认成员函数是程序猿不显示声明定义,编译器会中生成。 在程序编写中,我们也经常使用拷贝的方式来获取到对应的值,例如整形变量拷贝int a 0; i…...
2024年开发语言热度排名
随着技术的不断发展和变化,编程语言的热度也在不断演变。2024年即将到来,我们有必要回顾和展望当前和未来的开发语言市场。本文将基于多个因素,包括行业需求、社区支持、流行度以及新兴趋势,对2024年的开发语言热度进行排名和分析…...
CryptoMamba:利用状态空间模型实现精确的比特币价格预测
“CryptoMamba: Leveraging State Space Models for Accurate Bitcoin Price Prediction” 论文地址:https://arxiv.org/pdf/2501.01010 Github地址:https://github.com/MShahabSepehri/CryptoMamba 摘要 预测比特币价格由于市场的高波动性和复杂的非线…...
别再对着文档发愁了!手把手教你读懂并配置StrongSwan的ipsec.conf文件
从零到精通:StrongSwan的ipsec.conf实战配置指南 第一次打开ipsec.conf文件时,那些密密麻麻的参数确实让人望而生畏。作为一款功能强大的IPsec实现,StrongSwan的配置文件看似复杂,实则遵循着清晰的逻辑结构。本文将带你从实际应用…...
5大核心模块构建学术排版系统:STIX Two字体全面应用指南
5大核心模块构建学术排版系统:STIX Two字体全面应用指南 【免费下载链接】stixfonts OpenType Unicode fonts for Scientific, Technical, and Mathematical texts 项目地址: https://gitcode.com/gh_mirrors/st/stixfonts 一、价值解析:为什么专…...
栈(C语言)
目录 1. 栈的定义 2. 代码实现 1. 栈的定义 栈属于线性表,具有后进先出的特点,存储结构类似羽毛球桶,可以依次取出最后放入栈中的数据。实现:栈一般采用数组 / 链表实现,但是推荐程度:数组 > 单链表 …...
libssh2非阻塞模式实战:单线程管理多个SSH连接的高效技巧
libssh2非阻塞模式实战:单线程管理多个SSH连接的高效技巧 在当今分布式系统和自动化运维的浪潮中,SSH协议作为远程管理的黄金标准,其性能瓶颈往往出现在需要同时管理大量连接时。传统多线程方案不仅资源消耗大,还面临线程同步的复…...
文墨共鸣大模型在网络安全领域的应用:模拟攻击脚本分析与安全报告撰写
文墨共鸣大模型在网络安全领域的应用:模拟攻击脚本分析与安全报告撰写 最近和几个做安全的朋友聊天,他们都在抱怨同一个问题:每天面对海量的告警日志和五花八门的攻击脚本,分析起来耗时费力,写报告更是头疼。技术细节…...
终极指南:Windows游戏控制器虚拟驱动ViGEmBus完全掌握
终极指南:Windows游戏控制器虚拟驱动ViGEmBus完全掌握 【免费下载链接】ViGEmBus Windows kernel-mode driver emulating well-known USB game controllers. 项目地址: https://gitcode.com/gh_mirrors/vi/ViGEmBus ViGEmBus是一款强大的Windows内核模式驱动…...
大数据运维--大数据分布式集群
01.运维工程师都有哪些职位?一图胜千言,针对运维工程师在公司都有哪些岗位,我们不妨看看下面这张图2.大数据运维的工作职责 【职责1】规划部署01 根据业务规划和未来业务演进评估集群 规模、存储规模、算力需求、技术选型等。 02 大数据生态组…...
别盲目冲网安!普通本科转行 5 年月薪 2 万 +,掏心窝子真话
别盲目冲网安!普通本科转行5年,月薪2万的真心话 网安行业确实火,但真话难听:这行超卷,缺的是能干活的实战派,不是凑数的小白。 我普通本科出身,转行网安5年,如今月薪2万࿰…...
Phi-4-mini-reasoning推理能力展示:多步分析题目的简洁结论生成效果
Phi-4-mini-reasoning推理能力展示:多步分析题目的简洁结论生成效果 1. 模型介绍 Phi-4-mini-reasoning是一款专注于推理任务的文本生成模型,特别擅长处理需要多步分析的题目。与通用聊天模型不同,它被设计用来解决数学题、逻辑题等需要严谨…...
Super Qwen Voice World效果展示:砖块跳动节拍与语音时长精准匹配
Super Qwen Voice World效果展示:砖块跳动节拍与语音时长精准匹配 1. 引言:当像素世界“开口说话” 想象一下,你正在玩一款复古的像素游戏。屏幕底部的砖块随着背景音乐有节奏地上下跳动,突然,一个充满活力的声音响起…...
