@EnableWebMvc 注解会让Swagger无效访问的问题
在工作中,通过Swagger2对项目的controller进行配置,以便于用户测试restful服务接口提高开发效率。
但是今天却出现了一个让我匪夷所思的问题就是在配置类里面加上@EnableWebMvc注解后(开启web配置支持)启动项目

发现访问Swagger的ui界面404

这个我就奇怪了,然后我尝试的把@EnableWebMvc注解放到启动类上

发现Swagger-ui.html又可以访问到了,我记的@SpringBootApplication是默认开启自动配置webMvc的呀,那为什么会这样子呢,
通过查找资料发现@EnableWebMvc这个注解不建议直接配置到@Configuration上
@EnableWebMvc注解会全面接管SpringMVC,所有的SpringMVC的自动配置都失效了,通常不这么干。
查看@EnableWebMvc源码发现,是继承的WebMvcConfigurationSupport

然后我去查了SpringBoot对MVC的自动配置WebMvcAutoConfiguration发现
@ConditionalOnMissingBean({WebMvcConfigurationSupport.class})
发现@EnableWebMvc加入之后会会取消SpringBoot的自动配置,自会提供最基础的功能

所以根据总结不难发现,springboot对MVC的自动配置已经帮助我们配置了应用开发中大部分的功能,我们几乎不用去关闭修改,当然对Swagger的配置SpringBoot也帮助我们
自动配置完成。
所以当我们取消SpringBoot自动配置的时候加上了@EnableWebMvc之后,就需要自己配置Swagger
@EnableWebMvc 注解会让Swagger无效访问的问题的更多相关文章
- @EnableWebMVC注解理解
@EnableWebMVC注解用来开启Web MVC的配置支持.也就是写Spring MVC时的时候会用到.
- 开源小工具 - swagger API访问代码生成器(js/typescript)
现在流行前后端分离,后端通常会使用swagger生成api文档,提供给前端的同事来调用,一般前端是查看这个文档,根据文档说明编写调用代码.其实,swagger已经提供了足够多的描述信息,我们可以基于s ...
- Swagger如何访问Ocelot中带权限验证的API
先亮源代码:https://github.com/axzxs2001/Asp.NetCoreExperiment/tree/master/Asp.NetCoreExperiment/SwaggerDe ...
- spring boot j集成seagger 加入拦截器后 swagger 不能访问
一开始我是这样排除拦截的,但是发现没用 后来我发现swagger的真实访问路径是这样的 转自: https://blog.csdn.net/ab1991823/article/details/7906 ...
- Swagger默认访问地址
Springboot工程格式 http://localhost:8080/swagger-ui.html 非Springboot工程格式(需加个项目名xxx) http://localhost:808 ...
- spring boot.2x 集成swagger 加入拦截器后 swagger不能访问
忽略掉 swagger-resources下面的请求 以及忽略掉 v2下面的请求即可 转自:https://blog.csdn.net/hanwenyi520/article/details/7989 ...
- SpringMVC之八:基于SpringMVC拦截器和注解实现controller中访问权限控制
SpringMVC的拦截器HandlerInterceptorAdapter对应提供了三个preHandle,postHandle,afterCompletion方法. preHandle在业务处理器 ...
- spring boot集成swagger,自定义注解,拦截器,xss过滤,异步调用,guava限流,定时任务案例, 发邮件
本文介绍spring boot集成swagger,自定义注解,拦截器,xss过滤,异步调用,定时任务案例 集成swagger--对于做前后端分离的项目,后端只需要提供接口访问,swagger提供了接口 ...
- AspNetCore网关集成Swagger访问使用IdentityServer保护的webapi项目
创建webapi项目 创建四个webapi项目,两个处理业务,一个网关,一个验证中心.四个项目对应的端口如下, ApiGateway:1999 IdentityServer:16690 Service ...
- 微服务之十四如何在 Ocelot 网关中配置多实例 Swagger 访问
一.介绍 当我们开发基于微服务的应用程序的时候,有一个环节总是跳不过去的,那就是要创建 WebApi,然后,我们的应用程序基于 WebApi 接口去访问.在没有 Swagger 以前,我们开发好了 W ...
随机推荐
- 激活windows教程
新建bat文件 [批处理文件:后缀是 bat ] 输入代码: slmgr/skms kms.03k.org slmgr/ato 然后以管理员运行 :
- centos7.9 安装 nodejs(包含安装fnm、更换yum源、升级 gcc、make、glibc、libstdc++)
1.安装fnm (1)压缩包fnm-linux.zip搞到服务器上,我放在root里. (2)解压.设置权限 unzip fnm-linux.zip chmod 777 fnm (3)设置环境变量,添 ...
- 让容器通信变得简单:深度解析 Containerd 中的 CNI 插件
作者:尹珉,KubeSphere Ambassador & contributor,KubeSphere 社区用户委员会杭州站站长. 引言 在上一篇文章中,我们详细讨论了 Kubernetes ...
- 云原生周刊:GitOps 的 4 条核心原则
日前在温哥华举行的 cdCON + GitOpsCon 上,分享内容以 GitOps 原则为特色: GitOps 是声明式的: GitOps 应用程序是版本化的和不可变的: 自动拉取 GitOps 应 ...
- 为你的Windows用户设置无边框半透明头像
步骤一:锁定头像 Win+R输入gpedit.msc进入组策略编辑器,按图中所示,选择"计算机管理->管理模板->用户账户设定",将里面唯一选项"对所有账户使 ...
- 哈希表(C语言实现)
在计算机世界中,哈希表如同一位聪慧的图书管理员.他知道如何计算索书号,从而可以快速找到目标图书. 文章目录 1.哈希表的概念 1.1哈希表的基本操作 1.2哈希表的常用操作 2.基于数实现哈希表 2. ...
- Git仓库操作笔记[Git repositories]
指令操作:Git Bash 重点:远程库和本地库之间操作 首先得在github网站 上创建一个 repository ,才能同步. 命令前提是进入githubLib 下的当前目录. 1.从远程库克隆到 ...
- Python311新特性-特化指令specializing adaptive interpreter-typing-asyncio
Python3新特性 python3.11增加了许多特性,让python更快更加安全,本文从应用层面来讲一下python3.11的这些新特性 特化自适应解析器是什么,如何利用特化写出更高性能的代码 如 ...
- 2024/9/16 CSP-S模拟赛试题
A 这题是很有意思的一个题,思路就是你考虑kt的位置只可能在四个角,因为这种情况下,他的距离才会最远对吧,所以你就暴力找另一个人fengwu的点的位置,然后计算他们之间的距离然后你求一个\(\max\ ...
- WiFi基础(七):WiFi漫游与WiFi组网
liwen01 2024.10.27 前言 无线 WiFi 的优点是方便.灵活,可以接入各种设备.缺点就是信号容易被干扰.信号覆盖范围有限.下面几个问题应该很多人都有遇到过: 为何很多洗手间的 WiF ...