Spring mvc 集成Swagger2

2023-11-03


)
小编一直写的是SPringleboot 和vue,突然今天公司给我一个Spring mvc 的项目,但是还是没有集成Swagge的项目,导致我在调试及测试时候很不方便,不能及时看到接口的信息。所以小编作为多年的资深开发,觉得这对我是一件和容易的事情,所以就干起来了。但是在集成的时候遇到很多问题完全和springboot不一样,所以在这里记录一下。

Spring mvc 集成Swagger2

@EnableWebMvc
@EnableSwagger2
@Configuration 
**//下面这个在springmvc中必须要,,lazyInit = true 这个设置必须要**
@ComponentScan(basePackages = {"com.myuser.controller"}**,lazyInit = true**)
public class Swagger2Config  extends WebMvcConfigurationSupport {
    @Bean
    public Docket createRestApi() {// 创建API基本信息
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                //这个设置在springmvc中不需要可以不写,
//                .apis(RequestHandlerSelectors.basePackage("com.echase.controller"))
                .paths(PathSelectors.any())
                .build()
                .apiInfo(apiInfo());
    }
    private ApiInfo apiInfo() {
        // 创建API的基本信息,这些信息会在Swagger UI中进行显示
        return new ApiInfoBuilder()
                // API 标题
                .title("主题")
                // API描述
                .description("描述")
               // .contact(new Contact("随便写", "随便写", "随便写"))
                // 版本号
                .version("1.0")
                .build();
    }
}

效果

在这里插入图片描述

问题1(swagger界面可以打开,但是接口不显示)

在这里插入图片描述
原因是:
在这里插入图片描述
控制台有报错:
在这里插入图片描述

问题2( Could not resolve placeholder ‘cardUrl’ in value “${cardUrl}”)

在这里插入图片描述
问题原因是找不到占位符。根本原因是,swagge2首先被注解进来后,然后开始扫controller得包,但是controller里面引入了配置文件,而对应得配置文件还是没加载进来,最后导致了${cardUrl}占位符得出错。
1.小编得解决思路

  1. 小编尝试在配置文件springmvc.xml里面首先加载配置文件,查了好像信息都不成功。
  2. 小编考虑,先让加载配置文件在加载swagger。然后就看了一下ComponentScan属性,有一个lazyInit = false属性,其实就是是否开启懒加载,默认是false,小编,将其设置为true。该问题成功被解决。

重点:

  1. springmvc集成swagger2:
    3.1 要使用@ComponentScan得方式来扫包。
    3.2ComponentScan要开启懒加载方式,属性:lazyInit = true要开启。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring mvc 集成Swagger2 的相关文章

随机推荐

  • 为啥一个java文件只能有一个public类

    以后 如果有人问你为什么一个java文件只能有一个public类呢 答 很简单啊 因为public类的名字要和java文件名相同 文件名只有一个 当然只能有一个public类 问 good 那为神马文件名必须要和public类名字相同呢 不
  • Blob+定位+特征来识别药片缺陷

    原图 定位 结果 代码 This example demonstrates an application from the pharmaceutical industry The task is to check the content o
  • 【Tensorflow2.0】基于Docker的Tensorflow2.x安装教程

    文章目录 1 Docker Engine安装 1 1 填加docker ce安装源到系统 1 2 docker ce 安装 1 3 国内安装环境设置 1 3 1 docker 国内源设置 1 3 2 docker hub国内源设置 1 3
  • remote: Invalid username or password. fatal: Authentication failed for .......

    最近一直没有使用GitHub提交代码 今天提交了点东西 发现怎么都push不成功 我就纳闷了 这段时间没有做任何事情 这是怎么回事呢 我使用的sourcetree提交代码 首先它会弹出一个框框让你输入 用户名密码 然而输入了很多次 还是re
  • 达梦数据库图形化管理界面manager打开报错

    达梦数据库管理工具manager打开报如下错误 Locking is not possible in the directory home diske dmdbms tool configuration org eclipse osgi A
  • Linux基础(2)用户操作

    该文章主要为完成实训任务及总结 详细实现过程及结果见 参考文章 参考文章 https howard2005 blog csdn net article details 126843544 学习目标 用户账号管理 Linux用户操作 Linu
  • 代码覆盖率和测试覆盖率_代码覆盖率与测试覆盖率; 哪个更好?

    代码覆盖率和测试覆盖率 测试覆盖率和代码覆盖率是衡量代码有效性的最流行方法 尽管这些术语有时会互换使用 因为它们的基本原理相同 但是它们并不像您想象的那样相似 很多时候 我注意到测试团队和开发团队对这两个术语的使用感到困惑 这就是为什么我想
  • VBA中实现数组排序的多种方法

    VBA里面没有现成的Sort方法可以使用 VBA里面要对数组进行排序 现有的通常做法 1 通过单元格赋值以后利用工作表里的Sort方法进行排序 2 通过SQL实现 也需要调用单元格区域存放数据 3 直接写循环语句通过算法来实现 除了上述方法
  • require js之define 函数

    require js define 函数 模块不同于传统的脚本文件 它良好地定义了一个作用域来避免全局名称空间污染 它可以显式地列出其依赖关系 并以函数 定义此模块的那个函数 参数的形式将这些依赖进行注入 而无需引用全局变量 Require
  • C语言字节对齐及__attribute__((aligned(n))) 与 #pragma(pack(n))的作用

    一 对齐规则 在没有 attribute aligned n 或 pragma pack修饰的声明下 字节对齐遵循下面三个原则 结构体 struct 的数据成员 第一个数据成员存放的地址为结构体变量偏移量为0的地址处 结构体变量的首地址能够
  • win7防火墙规则设置

    在微软的防火墙帮助中有这么一段 在其自己唯一的 exe 文件中运行且不受服务容器主持的系统服务被视为程序 同样 作用同系统服务且无论用户是否登录到计算机都运行的程序 只要该程序在其自己唯一的 exe 文件中运行 也被视为程序 请不要在未指定
  • User Guide for AMDGPU Backend

    User Guide for AMDGPU Backend LLVM 17 0 0git documentation The AMDGPU backend provides ISA code generation for AMD GPUs
  • SAP第二代增强--出口查找(实例)以及使用

    第二代增强 增强查找 增强使用 增强查找 1 以CO02修改生产订单为例 修改好数据后 输入 H打开全局调试模式 2 回车后提示 调试被激活 3 点击保存 触发调试 并在STOP处打好断点 call customer function 4
  • Angluar初学者快速上手教程2021(理论+实例)

    文章目录 Angular 一 介绍 1 1 Angular 的概念模型 1 2 环境搭建 1 3 结构介绍 二 组件模板 2 1 JS 模板引擎的设计思路 2 2 Mustache 语法 2 3 属性绑定 2 4 事件绑定 2 5 双向绑定
  • rust官网

    https doc rust lang org std result enum Result html https doc rust lang org std option enum Option html method unwrap 学习
  • Linux查看PCIe版本及速率# lspci -vvv

    Linux查看PCIe版本及速率 https www cnblogs com lsgxeva p 9542975 html lspci vvv grep Width i lspci grep pci i00 02 0 PCI bridge
  • JAVA字符串方法

    返回特定位置的字符 String a asdf char b a charAt 2 返回 d
  • 【华为OD机试2023】产品最差奖 C++ Java Python

    华为OD机试2023 产品最差奖 C Java Python 前言 如果您在准备华为的面试 期间有想了解的可以私信我 我会尽可能帮您解答 也可以给您一些建议 本文解法非最优解 即非性能最优 不能保证通过率 Tips1 机试为ACM 模式 你
  • Java基础-对象反序列化

    对象反序列化 使用到的流是对象字节输入流 ObjectInputStream 作用 以内存为基准 把存储到磁盘文件中去的对象数据恢复成内存中的对象 称为对象反序列化 package per mjn serializable import j
  • Spring mvc 集成Swagger2

    Spring mvc 集成Swagger2 Spring mvc 集成Swagger2 效果 问题1 swagger界面可以打开 但是接口不显示 问题2 Could not resolve placeholder cardUrl in va