【knife4j-spring-boot】Springboot + knife4j-spring-boot 整合swagger脚手架

swagger-boostrap-ui从1.x版本到如今2.x,同时也更改名字Knife4j

在此记录下 knife4j-spring-boot-starter 的整合。

只需要引入knife4j-spring-boot-starter,无需引入其他的swagger包,knife4j-spring-boot-starter已经包含。

官方版本说明

<dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><version>2.0.8</version>
</dependency>

整体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>3.1.3</version>--><version>2.7.2</version><relativePath/></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><!-- starter start --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></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>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.1</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-freemarker</artifactId></dependency><!-- knife swagger --><dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><version>2.0.8</version></dependency><!-- starter end --><!-- mybatis-plus-generator start --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.4.1</version></dependency><dependency><groupId>org.apache.velocity</groupId><artifactId>velocity-engine-core</artifactId><version>2.3</version></dependency><!-- mybatis-plus-generator end --><!-- 动态数据源 start --><dependency><groupId>com.baomidou</groupId><artifactId>dynamic-datasource-spring-boot-starter</artifactId><version>3.5.0</version></dependency><!-- 动态数据源 end --><!-- aop切面 start --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId></dependency><!-- aop切面 end--><!-- 数据库连接池 start --><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.9</version></dependency><!-- 数据库连接池 end --><!-- mysql start --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><!-- mysql end --><!-- 工具 start --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.5.1</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><!-- excel导出 --><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.2.6</version></dependency><dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>17.0</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.68</version></dependency><!-- 工具 end --><!-- doc\pdf\excel互转 start --><!--<dependency><groupId>e-iceblue</groupId><artifactId>spire.pdf.free</artifactId><version>5.1.0</version></dependency><dependency><groupId>e-iceblue</groupId><artifactId>spire.doc</artifactId><version>11.8.1</version></dependency>--><!-- doc\pdf\excel互转 end --></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><repository><id>com.e-iceblue</id><url>https://repo.e-iceblue.cn/repository/maven-public/</url></repository></repositories></project>

包结构

swagger配置:

package com.example.demo.config;import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
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;/*** @author* @description* @since 2023/8/31*/
@Configuration
@EnableKnife4j
public class SwaggerConfig {/*** 不同包情况下  bi包*/@Beanpublic Docket createRestBiApi() {return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).groupName("报表管理").select().apis(RequestHandlerSelectors.basePackage("com.example.demo.bi.controller")).paths(PathSelectors.any()).build();}/*** 不同包情况下  system包*/@Beanpublic Docket createRestSystemApi() {return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).groupName("系统管理").select().apis(RequestHandlerSelectors.basePackage("com.example.demo.system.controller")).paths(PathSelectors.any()).build();}/*** 同包情况下路径不同  同在system包下,book开头的单独分组*/@Beanpublic Docket createRestBookApi() {return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).groupName("图书管理").select().apis(RequestHandlerSelectors.basePackage("com.example.demo.system.controller")).paths(PathSelectors.regex("/book/.*")).build();}private ApiInfo apiInfo() {return new ApiInfoBuilder().title("2023_demo API管理").description("2023_demo API 1.0").build();}}

yml配置(必须)

spring:mvc:pathmatch:matching-strategy: ant_path_matcher

结果:

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

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

相关文章

mysql1124实验七索引管理

实验任务七 索引管理实验任务书 1. 实验目的 掌握在MySQL中使用MySQL Workbench或者SQL语句创建和使用索引的方法&#xff08;以SQL命令为重点&#xff09;。 掌握在MySQL中使用MySQL Workbench或者SQL语句查看和删除索引的方法&#xff08;以SQL命令为重点&#xff09;。 …

详细解答T-SNE程序中from sklearn.manifold import TSNE的数据设置,包括输入数据,绘制颜色的参数设置,代码复制可用!!

文章目录 前言——TSNE是t-Distributed Stochastic Neighbor Embedding的缩写1、可运行的T-SNE程序2. 实验结果3、针对上述程序我们详细分析T-SNE的使用方法3.1 加载数据3.2 TSNE降维3.3 绘制点3.4 关于颜色设置&#xff0c;颜色使用的标签数据的说明cy 总结 前言——TSNE是t-D…

Centos Download

前言 CentOS Linux 是一个社区支持的发行版&#xff0c;源自 CentOS git for Red Hat Enterprise Linux &#xff08;RHEL&#xff09; 上免费提供给公众的源代码。因此&#xff0c;CentOS Linux 的目标是在功能上与 RHEL 兼容。CentOS 计划主要更改组件以删除上游供应商的品牌…

Redis的四种模式:单机、主从、哨兵、集群

一、简单理解 单机模式&#xff1a;安装你的redis&#xff0c;启动服务即为单机模式。 主从模式&#xff1a;一个主节点搭配一个或多个从节点&#xff0c;无自动故障转移功能&#xff0c;主节点发生故障后&#xff0c;需要人工将其中一个从节点设置为主节点。 哨兵模式&…

【微服务专题】SpringBoot自动配置源码解析

目录 前言阅读对象阅读导航前置知识笔记正文0、什么是自动配置0.1 基本概念0.2 SpringBoot中的【约定大于配置】0.3 从SpringMVC看【约定大于配置】0.4 从Redis看【约定大于配置】 一、EnableAutoConfiguration源码解析二、SpringBoot常用条件注解源码解析2.1 自定义条件注解2.…

java 反射和注解1-反射详解

反射和注解本就是一家人&#xff0c;注解离不开反射&#xff0c;这里先将反射的写法&#xff0c;本文涉到的注解暂时可以不不用理解 1&#xff0c;创建一个类 public class ReflexUser {public String name;private String namePrivate;protected String nameProtected;Strin…

Arduino库之 LedControl 库说明文档

LedControl 库最初是为基于 8 位 AVR 处理器的 Arduino 板编写的。用于通过MAX7219芯片控制LED矩阵和7段数码管。但由于该代码不使用处理器的任何复杂的内部功能&#xff0c;因此具有高度可移植性&#xff0c;并且应该在任何支持 和 功能的 Arduino&#xff08;类似&#xff09…

模拟火车订票系统---python序列

if __name__ __main__:#创建车辆信息列表list["车次","出发站-到达站","出发时间","到达时间","历时","余票"]trainNumber[T40,T298,Z158,Z62]address[长春-北京,长春-北京,长春-北京,长春-北京]getTime[00:12,0…

简单介绍一下js中的构造函数、原型对象prototype、对象原型__proto__、原型链

构造函数 function Star (uname, age){this.uname unamethis.age agethis.sing function(){ log(唱歌~) }}let xzq new Star(薛之谦, 30)let ldh new Star(刘德华, 20)log(ldh) // { uname: 刘德华, age: 20, sing: f }ldh.sing() // 唱歌~log(ldh.sing xzq.sing) // fal…

DevEco Studio安装

HUAWEI DevEco Studio For OpenHarmony&#xff08;以下简称DevEco Studio&#xff09;是基于IntelliJ IDEA Community开源版本打造&#xff0c;面向OpenHarmony全场景多设备的一站式集成开发环境&#xff08;IDE&#xff09;&#xff0c;为开发者提供工程模板创建、开发、编译…

uniapp时间选择器

Uniapp 是一套基于Vue.js 开发的跨平台开发框架&#xff0c;它能够以一套代码编译成多个平台的应用&#xff0c;包括 iOS、Android、H5 等。要实现时间选择器可以使用uni-app提供的组件picker&#xff0c;它可以用于选择器、时间选择器、日期选择器等场景。 以下是一个简单的时…

Docker的简单介绍

Docker是一个开源的应用容器引擎&#xff0c;让开发者可以打包他们的应用以及依赖包到一个可移植的容器中&#xff0c;然后发布到任何流行的Linux或Windows操作系统的机器上&#xff0c;也可以实现虚拟化。容器是完全使用沙箱机制&#xff0c;相互之间不会有任何接口。 Docker…

服务器被入侵了怎么去排查

在当今数字化时代&#xff0c;网络安全问题变得越来越重要。其中&#xff0c;服务器被入侵是一种常见的安全威胁。当服务器被入侵时&#xff0c;我们需要采取一系列措施来排查和解决问题。本文将为您提供服务器被入侵后的排查步骤。 第一步&#xff1a;确认服务器被入侵 当发现…

用opencv绘制一个箭头,沿着圆运动并留下运动轨迹(c++)

用opencv绘制一个箭头&#xff0c;沿着圆运动并留下运动轨迹&#xff08;c&#xff09;。基于该例程可以简单实现一个运动小车的模型。 using namespace cv;int main() {// 创建一个黑色背景的图像&#xff0c;大小为400*400Mat image(400, 400, CV_8UC3, Scalar(0, 0, 0));//…

C语言进阶之路-基本数据小怪篇

目录 一、学习目标&#xff1a; 二、数据基本类型 整型 浮点型 / 实型 字符 字符串 布尔型数据 三、重要的杂七杂八知识点 常量与变量 标准输入 sizeof运算符&#xff1a; 类型转换 数据类型的本质 整型数据尺寸 可移植性整型 拿下第一个C语言程序 总结 一、学…

UE小计:顶部工具栏按钮添加下拉列表,大纲列表、资源管理窗口右键添加按键

下拉列表 void FYouPluginsModule::StartupModule() {FYouToolStyle::Initialize();FYouToolStyle::ReloadTextures();FYouToolCommands::Register();PluginCommands MakeShareable(new FUICommandList);PluginCommands->MapAction(FYouToolCommands::Get().PackByCloudAc…

web前端之引入svg图片、html引入点svg文件、等比缩放、解决裁剪问题、命名空间、object标签、阿里巴巴尺量图、embed标签、iframe标签

MENU 前言直接在页面编写svg使用img标签引入通过css引入使用object标签引入其他标签参考资料 前言 web应用开发使用svg图片的方式&#xff0c;有如下几种方式 1、直接在页面编写svg 2、使用img标签引入 3、通过css引入 4、使用object标签引入 直接在页面编写svg 在html页面直接…

LeetCode Hot100 101.对称二叉树

题目&#xff1a; 给你一个二叉树的根节点 root &#xff0c; 检查它是否轴对称。 代码&#xff1a; class Solution {public boolean isSymmetric(TreeNode root) {if(rootnull || (root.leftnull && root.rightnull)) {return true;}//用队列保存节点LinkedList<…

高防CDN在网站搭建中的优劣势分析

随着网络攻击的日益增多和恶性化&#xff0c;网站安全性成为网站搭建中至关重要的一环。高防CDN&#xff08;Content Delivery Network&#xff09;作为一种有效的安全防护手段&#xff0c;扮演着保护网站免受恶意攻击的角色。本文将从网站搭建的角度&#xff0c;深入分析高防C…

vue3+ts+vite 打包报错 TS2304: Cannot find name ‘xxx‘

都说vue组合式api好&#xff0c;那必须来一套试试&#xff0c;而且element ui的demo全是lang"ts"了 改成组合式api没问题&#xff0c;但是当加上lang"ts"之后就疯狂报错 src/components/table/tableshow.vue:7:28 - error TS2304: Cannot find name tempsh…