spring boot 多模块项目搭建Knife4j文档,swagger-ui x2

news2024/11/25 2:48:00

介绍:  knife4j   jeecg-boot用的就是这个,我之前要搭过swagger-ui,但外观,体验都没有knife4j好,我没记错的话已经停止发布版本了,所以我的多模块项目就用到了这个,还搭建了jwt  token获取我也是在网上找的工具。

package com.zuodou.knife4jconfig;

import com.google.common.base.Optional;
import io.swagger.annotations.ApiOperation;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.RequestHandler;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.ParameterBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.schema.ModelRef;
import springfox.documentation.service.*;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spi.service.contexts.SecurityContext;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import com.zuodou.enums.CommonConstant;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import static springfox.documentation.builders.RequestHandlerSelectors.basePackage;

@Configuration
@EnableSwagger2
public class Knife4jConfiguration {
    // 定义分隔符,配置Swagger多包
    private static final String splitor = ";";
    @Bean(value = "defaultApi2")
    public Docket defaultApi2() {
        Docket docket=new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                //分组名称
                .groupName("2.X版本")
                .select()
                //这里指定Controller扫描包路径  这种是指定扫描多个不同的包,没研究好,出现了问题,我就把包名统一改成com.zuodou
//                .apis(basePackage("zuodou.zuodousystem"+splitor+"zuodou.zuodoubase"))
                .apis(basePackage("com.zuodou"))
                .paths(PathSelectors.any())
                .build();
        return docket;
    }
    // api基本信息
    private ApiInfo apiInfo() {
        return new ApiInfo("dxiaodang's swagger",
                "测试knife4j-ui",
                "v1.0",
                "http://mail.qq.com",
                new Contact("dangbo", "http://mail.qq.com", "145xxxxx@qq.com"),  //作者信息
                "Apache 2.0",
                "http://www.apache.org/licenses/LICENSE-2.0",
                new ArrayList());
    }

}

项目结构展示

其他的没什么,那个注入过去就差不多,依赖你用的什么spring boot 版本就得去找对应的knife4j匹配的版本,或者你手动去输一个一个试

 

 

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

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

相关文章

260道2023最新网络安全工程师面试题(附答案)

2023年过去了一大半,先来灵魂三连问,年初定的目标完成多少了?薪资涨了吗?女朋友找到了吗? ​好了,不扎大家的心了,接下来进入正文。 由于我之前写了不少网络安全技术相关的文章和回答&#xff…

pdf文件如何生成长图?分享两个免费的方法给大家!

在某些情况下,我们可能需要将长图转换为PDF文件,以便更方便地分享和存档。本文将介绍两种免费的方法,帮助您实现这一目标。方法一是使用记灵在线工具的PDF转长图功能,方法二是利用PDF24工具进行转换。让我们一起来了解具体操作步骤…

blender 叶片制作

圆润叶片 效果展示 shift a 新建矩形,s y 延 y 轴方向压扁,ctrl r 循环切割,滚动滚轮,延 y 轴方向切两条循环线,框选点,s 缩放,调整到叶片造型,添加细分修改器;给叶片…

构建数据中台的三要素:方法论、组织和技术

知道要转型,要建设数据中台,却不知咋做,咋办? 现在有很多讲“如何建设数据中台”文章,观点各不相同: 数据中台是数据建设方法论,按照数据中台设计方法和规范实施就可建成数据中台数据中台背后…

WPF嵌入外部exe应用程序-去除子窗体边框样式

WPF嵌入外部exe应用程序-去除子窗体边框样式 去除子窗体边框样式导入winodows API使用API去除边框报错:解决实现效果 完整实现代码 接着上一篇WPF嵌入外部exe应用程序-实现基本的嵌入,解决子窗体边框样式问题,去掉子窗体样式,让其融为一体&am…

家政上门小程序|同城家政预约上门小程序开发|上门家政软件源码

随着生活水平的提高,越来越多的人开始借助家政服务来解决日常生活中的琐事。为了方便用户寻找和预约家政服务,家政上门小程序应运而生。家政上门小程序开发具有多种功能,使其成为家政服务行业的重要工具。本文将介绍一些家政上门小程序开发的…

品牌营销策略:如何有效打造品牌知名度与口碑?

品牌营销策略是企业在市场竞争中脱颖而出的重要手段,它能够帮助企业树立品牌形象,提升品牌知名度,增强品牌影响力,从而获得更多的市场份额和利润。那么,如何制定一套有效的品牌营销策略呢?以下是一秒推小编…

《向量数据库指南》:向量数据库Pinecone管理索引教程(一)

在本节中,我们将说明如何获取索引列表、创建索引、删除索引和描述索引。 要了解与索引相关的概念,请参见索引。 ⚠️警告 Starter(免费)计划上的索引将在7天的不活动后被删除。为了 防止这种情况,请发送任何API请求或登录控制台。这将计算为 活动。 获取有关您的索…

解决appium-doctor报 mjpeg-consumer cannot be found

解决appium-doctor报 mjpeg-consumer cannot be found npm i -g mjpeg-consumer

深入开箱跑分全志A523平板电脑 台电P26T

首先外观和观感就不说了,图都有,来看看内部实际的东西。 主控全志A523M00X0000,配套Android 13 5.15 Kernel系统。4G内存,64G eMMC,屏幕1280*800分辨率。 平板开启了安全启动所以想买来开发刷机可以歇歇了 &#xf…

C++基础项目实战之通讯录管理系统

赶时间的可以看改进版的通讯录管理系统 通讯录管理系统 文章目录 通讯录管理系统1. 系统需求2. 菜单功能3. 退出功能4. 添加联系人4.1 设计联系人结构体4.2 设计通讯录结构体 5. 显示联系人5.1 封装显示联系人函数 6. 删除联系人6.1 封装检测联系人是否存在6.2 封装删除联系人函…

再度合作|极智嘉(Geek+) P系列拣选机器人进驻CEVA欧洲物流中心

近日,3PL巨头CEVA Logistics首度在社交媒体展示其与极智嘉(Geek)合作打造的全新欧洲物流中心,并在推文中对极智嘉(Geek)给予了高度赞扬。CEVA表示,极智嘉不仅彻底颠覆了CEVA的工作环境,还充分保障了敬业员工的安全和人体工程学效率…

2.6 线性表的逆置

逆置: 将表中的元素调整成与原来相反的顺序. 1. 顺序表的逆置 图1. 顺序表的逆置 用temp存储要交换的元素, temp arr[ i ]; arr[ i ] arr[ j ]; arr[ j ] temp; 然后i, j--. 若数组长度为偶数, 则i > j时结束循环; 若数组长度为奇数, 则i > j时结束循环. 也即不管数…

ABAP W CVI_EI 047 对供应商,不支持初始的 OBJECT_TASK

调BAPI:cl_md_bp_maintain>maintain修改供应商失败,提示 W CVI_EI 047 对供应商,不支持初始的 OBJECT_TASK 很可能是vendor-header中的object_task没有赋值 ls_data-vendor-header-object_task ‘U’.

C进阶:指针的进阶(3)

函数指针 首先来看一段代码&#xff1a; #include <stdio.h>void test() {printf("hehe\n"); }int main() {printf("%p\n", test);printf("%p\n", &test);return 0; } 让我们来看一下执行结果吧&#xff1a; 从上述结果得出&#x…

OCR-字符识别笔记

安装 环境依赖 Linux | Windows | macOSPython 3.7PyTorch 1.6 或更高版本torchvision 0.7.0CUDA 10.1NCCL 2GCC 5.4.0 或更高版本准备环境 注解 如果你已经在本地安装了 PyTorch,请直接跳转到安装步骤。 第一步 下载并安装 Miniconda. 第二步 创建并激活一个 conda 环境…

[PCIE体系结构导读]PCI和PCI中断

PCI PCI总桥由HOST主桥和PCI桥推出&#xff0c;HOST主桥与主存储器控制器在同一级总线上&#xff0c;因此PCI设备可以方便地通过HOST主桥访问主存储器&#xff0c;即进行DMA操作。 PCI设备的DMA操作需要与处理器系统的Cache进行一致性操作&#xff0c;当PCI设备通过HOST主桥访…

guava限流器RateLimiter使用简介(Springboot实现)

在大型分布式系统中&#xff0c;限流是一种重要的防护机制&#xff0c;可以帮助我们控制流量并减轻系统的负担。Google的Guava库提供了一种方便的限流器实现&#xff0c;可以帮助我们轻松地实现限流功能。本文将介绍Guava中限流器的基本概念和使用方法。 一、什么是限流器&…

二层交换机和三层交换机区别

一、指代不同 1、两层交换机&#xff1a;工作于OSI模型的第2层&#xff08;数据链路层&#xff09;&#xff0c;故而称为二层交换机。 2、三层交换机&#xff1a;具有部分路由器功能的交换机&#xff0c;工作在OSI网络标准模型的第三层。 二、功能不同 1、两层交换机&#xff1…

企业数字化转型需要解决哪些问题?

企业的数字化转型及利用技术和数字解决方案来改进业务流程、增强客户体验并推动整体增长。尽管每个企业的数字化转型之旅都是独特的&#xff0c;但仍需要解决几个常见问题以确保转型成功。其中一些问题包括&#xff1a; 1.抵制变革&#xff1a;数字化转型中最大的挑战之一是员…