SpringBoot中Swagger2多包扫描问题

2023-11-08

API接口类没有能都放在同一个包下,是按功能模块分的,所以涉及多包扫描的问题,贴出来解决办法

Swagger在POM配置好后,修改SwaggerConfig类,我只贴出要修改的,直接用


//swagger2的配置文件,在项目的启动类的同级文件建立
@Configuration
@EnableSwagger2
//是否开启swagger,正式环境一般是需要关闭的(避免不必要的漏洞暴露!),可根据springboot的多环境配置进行设置
@ConditionalOnProperty(name = "swagger.enable", havingValue = "true")
public class Swagger2 {
    // 定义分隔符
    private static final String splitor = ";";

    // swagger2的配置文件,这里可以配置swagger2的一些基本的内容,比如扫描的包等等
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                // 为当前包路径
                .apis(basePackage("com.xxx.xxx.modules.permission.controller"
                        + splitor +
                        "com.xxx.xxx.controller"
                        + splitor +
                        "com.xxx.xxx.modules.sys.controller"))
                .paths(PathSelectors.any())
                .build();
    }

    // 构建 api文档的详细信息函数,注意这里的注解引用的是哪个
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                // 页面标题
                .title("测试使用 RESTful API 文档")
                // 创建人信息
                .contact(new Contact("woody", "https://", "xxxxx@qq.com"))
                // 版本号
                .version("1.0")
                // 描述
                .description("测试设备连接,API文档")
                .build();
    }


   /**
     * 重写basePackage方法,使能够实现多包访问,复制贴上去
     */
    public static Predicate<RequestHandler> basePackage(final String basePackage) {
        return input -> declaringClass(input).transform(handlerPackage(basePackage)).or(true);
    }

    private static Function<Class<?>, Boolean> handlerPackage(final String basePackage) {
        return input -> {
            // 循环判断匹配
            for (String strPackage : basePackage.split(splitor)) {
                boolean isMatch = input.getPackage().getName().startsWith(strPackage);
                if (isMatch) {
                    return true;
                }
            }
            return false;
        };
    }

    private static Optional<? extends Class<?>> declaringClass(RequestHandler input) {
        return Optional.fromNullable(input.declaringClass());
    }


    /**
     * swagger2原始ui
     * http://localhost:8080/swagger-ui.html
     *
     * swagger-ui-layer访问ui
     * http://localhost:8080/docs.html
     */
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SpringBoot中Swagger2多包扫描问题 的相关文章

  • Threejs加载OBJ模型

    threejs加载OBJ模型代码
  • 2014年6月23日-6月29日(共11小时,剩4424小时)

    6月23日 上午有事 下午1小时 剩4438小时 6月24日 3小时 剩4435小时 6月25日 5小时 剩4430小时 6月26日 1小时 剩4429小时 6月27日 3小时 剩4426小时 6月29日 2小时 剩4424小时
  • 论文笔记:When Do Contrastive Learning Signals Help Spatio-TemporalGraph Forecasting?

    2022 SigSpatial 1 intro 1 1 背景 论文认为数据稀缺是阻碍时空图 STG 预测的一个关键问题 在这一领域的公共数据集通常只包含几个月的数据 限制了可以构建的训练实例数量 gt 学习模型可能会对训练数据过拟合 导致泛
  • Redis的这些都没有掌握,你还想要拿Offer?

    Redis 简介 Redis 是完全开源免费的 遵守 BSD 协议 是一个高性能的 key value 数据库 Redis 与 其他 key value 缓存产品有以下三个特点 Redis 支持数据持久化 可以将内存中的数据保存在磁盘中 重
  • 反爬虫策略的应对方法汇总

    现在越来越多的工作需要用到爬虫程序 但是同时也有很多人会通过爬虫程序恶意竞争 因此为了能够保护自己的正当权益 各种反爬虫程序被研发利用起来 所以很多时候 在进行爬虫工作的时候首要面对的就是爬虫和反爬虫的拉锯战 这里就说一下常见的防爬虫策略和

随机推荐

  • c语言排序之冒泡排序升序的使用详解

    在c语言中实现冒泡排序 简介 冒泡 这个名字的由来是因为越大的元素会经由交换慢慢 浮 到数列的顶端 故名 冒泡排序应该是最常见的排序方法了 c语言初学者一定要学会使用 冒泡排序 BubbleSort 的基本概念是 依次比较相邻的两个数 将小
  • OpenCV中RotatedRect的角度问题与平行判定

    OpenCV中RotatedRect的角度问题与平行判定 在运用OpenCV的过程中 想对两个细窄长方形进行平行判定 但是因为RotatedRct的角度问题 走了很多弯路 RotatedRect OpenCV中 以左上角角点为O点 竖直向下
  • Nginx 部署 Django Python虚拟环境创建 傻瓜教程

    这里不讨论uwsgi 与 nginx之间的关系 但是建议学习 通俗说 Nginx就是可以让你的网页支持更多请求时保证负载均衡 简单的网页用uwsgi部署配合django runserver也可以达到要求 所以从负载能力是 Nginx gt
  • 浮点数在计算机中存储方式

    C语言和C 语言中 对于浮点类型的数据采用单精度类型 float 和双精度类型 double 来存储 float数据占用32bit double数据占用64bit 我们在声明一个变量float f 2 25f的时候 是如何分配内存的呢 如果
  • 什么是软件测试?零基础入门知识要点总结篇,5分钟带你快速了解

    1 什么是软件测试 软件测试 英语 Software Testing 描述一种用来促进鉴定软件的正确性 完整性 安全性和质量的过程 换句话说 软件测试是一种实际输出与预期输出之间的审核或者比较过程 通俗的来讲 软件测试 就是软件测试人员验证
  • 如何使用 Flask 和 GPT-4 API 创建人工智能驱动的 Python Web 应用程序

    欢迎来到 Web 开发的未来 人工智能 AI 正在彻底改变我们创建在线应用程序并与之交互的方式 在这篇博文中 我们将向您介绍使用 Flask 网络框架和 OpenAI 最先进的 GPT 4 API 创建尖端的人工智能 Python 网络应用
  • Vue06/Vue中this.$nextTick( ) 的用法及详细介绍

    一 nextTick 语法 this nextTick 箭头函数体 作用 this nextTick这个方法作用是当数据被修改后使用这个方法 回调函数获取更新后的dom再渲染出来 注意 1 data改变 更新DOM是异步的 2 获取更新后的
  • 基于Camera2和MediaRecorder实现视频录制

    一 概述 视频录制 在一般开发中很少遇到 大部分开发工作都是写写页面 请求接口 展示数据等等 真要遇到 可能采用第三方库实现 一来实现快速 二来可能觉得别人实现的比较好 特别是在开发周期很紧的情况下 一般都不会自己花时间实现 其实最好是使用
  • 「AntV」使用AntV X6实现流程编排设计器

    通过对BPMN的深入学习 以及对业界成熟的流程编排设计器的调研 了解到要研发一个流程编排设计器 需要实现如下几个主要的功能 支持创建各种流程图元素 包括任务 活动 网关 事件等 支持绘制各种连接线 包括普通连接线 条件连接线 消息连接线等
  • osg学习(四十八)Windows Error #2000

    Windows Error 2000 Win32WindowingSystem OpenGLContext Unable to restore current OpenGL rendering context Reason 无效的像素格式
  • 海思移植opencv+人脸检测+速度优化

    文章为9crk大神发表在海思论坛 为了备忘 特转到自己博客 地址 http www ebaina com bbs thread 4858 1 1 html 1 确保ubuntu能上网 2 安装cmake 代码 全选 sudo apt get
  • 关于KEIL5编译出现“Target not createt”全系列解决办法——情况1:字节限制 RESTRICTED VERSION WITH 0800H BYTE CODE SIZE LIMIT

    前言 在KEIL5编程 往往遇到许多 Target not createt 即目标不能实现这类情况 由此为帮助大家解决这些问题特开此贴 情况如下 1 2K字节限制错误 ERROR RESTRICTED VERSION WITH 0800H
  • 01背包问题动态规划(二维数组)

    01背包问题动态规划 二维数组 问题描述 一个旅行者有一个最多能装 M 公斤的背包 现在有 n 件物品 它们的重量分别是W1 W2 Wn 它们的价值分别为C1 C2 Cn 求旅行者能获得最大总价值 输入格式 第一行 两个整数 M 背包容量
  • maven项目中新建Servlet问题

    maven项目中新建Servlet问题 该文章分享本人在maven基础学习中遇到的一些问题 以及解决的方法 在IDEA中创建一个maven的web骨架项目后 然后在src main下新建一个directory java 并且设置文件夹为So
  • 为什么选择软件测试这个岗位?(面经)

    面试官 这么多岗位 你为什么会选择软件测试这个岗位 言外之意 你比起这么多应聘者有什么优势 从以下方面回答 1 对软件测试的理解 2 对岗位职责的了解 用自己在大学期间的学习 实习以及自己的优势对于这个岗位有什么好处和满足这个岗位的招聘需求
  • 微信小程序保存图片到相册

    先来看小程序中的保存图片到相册的api wx saveImageToPhotosAlbum filePath test png 这个只是测试路径 没有效果 success res console log success fail funct
  • java环境检测_如何检查是否安装了java环境(即JRE)

    浏览器访问一些调用了图形界面的网页 需要使用JRE 这个时候我们就需要检测操作系统是否已经安装了java环境 JRE 1 点击开始菜单 输入cmd 2 在cmd窗口中输入java 若提示 java 不是内部或外部命令 也不是可运行的程序或批
  • Spring Boot系列之修改内置Tomcat版本

    背景 在 spring boot 出来之前 或者没有使用 spring boot 时 Java EE 开发时如果选择 tomcat servlet 需要自己指定 tomcat 版本 此处没有考虑那种直接把打包的 war 直接扔到本地安装的任
  • 流提取运算符( >> )过滤空白符

    流提取运算符 gt gt 过滤空白符 转载于 https www cnblogs com kevinGaoblog archive 2012 04 12 2444822 html
  • SpringBoot中Swagger2多包扫描问题

    API接口类没有能都放在同一个包下 是按功能模块分的 所以涉及多包扫描的问题 贴出来解决办法 Swagger在POM配置好后 修改SwaggerConfig类 我只贴出要修改的 直接用 swagger2的配置文件 在项目的启动类的同级文件建