在工作中,通过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无效访问的问题的更多相关文章

  1. @EnableWebMVC注解理解

    @EnableWebMVC注解用来开启Web MVC的配置支持.也就是写Spring MVC时的时候会用到.

  2. 开源小工具 - swagger API访问代码生成器(js/typescript)

    现在流行前后端分离,后端通常会使用swagger生成api文档,提供给前端的同事来调用,一般前端是查看这个文档,根据文档说明编写调用代码.其实,swagger已经提供了足够多的描述信息,我们可以基于s ...

  3. Swagger如何访问Ocelot中带权限验证的API

    先亮源代码:https://github.com/axzxs2001/Asp.NetCoreExperiment/tree/master/Asp.NetCoreExperiment/SwaggerDe ...

  4. spring boot j集成seagger 加入拦截器后 swagger 不能访问

    一开始我是这样排除拦截的,但是发现没用 后来我发现swagger的真实访问路径是这样的 转自: https://blog.csdn.net/ab1991823/article/details/7906 ...

  5. Swagger默认访问地址

    Springboot工程格式 http://localhost:8080/swagger-ui.html 非Springboot工程格式(需加个项目名xxx) http://localhost:808 ...

  6. spring boot.2x 集成swagger 加入拦截器后 swagger不能访问

    忽略掉 swagger-resources下面的请求 以及忽略掉 v2下面的请求即可 转自:https://blog.csdn.net/hanwenyi520/article/details/7989 ...

  7. SpringMVC之八:基于SpringMVC拦截器和注解实现controller中访问权限控制

    SpringMVC的拦截器HandlerInterceptorAdapter对应提供了三个preHandle,postHandle,afterCompletion方法. preHandle在业务处理器 ...

  8. spring boot集成swagger,自定义注解,拦截器,xss过滤,异步调用,guava限流,定时任务案例, 发邮件

    本文介绍spring boot集成swagger,自定义注解,拦截器,xss过滤,异步调用,定时任务案例 集成swagger--对于做前后端分离的项目,后端只需要提供接口访问,swagger提供了接口 ...

  9. AspNetCore网关集成Swagger访问使用IdentityServer保护的webapi项目

    创建webapi项目 创建四个webapi项目,两个处理业务,一个网关,一个验证中心.四个项目对应的端口如下, ApiGateway:1999 IdentityServer:16690 Service ...

  10. 微服务之十四如何在 Ocelot 网关中配置多实例 Swagger 访问

    一.介绍 当我们开发基于微服务的应用程序的时候,有一个环节总是跳不过去的,那就是要创建 WebApi,然后,我们的应用程序基于 WebApi 接口去访问.在没有 Swagger 以前,我们开发好了 W ...

随机推荐

  1. 云原生周刊:使用 ChatGPT 提高安全性

    虽然 ChatGPT 最近因网络犯罪分子使用该技术加强攻击而成为负面新闻,但它也可以成为网络防御的强大资产,帮助公司最大限度地提高安全态势,同时弥合其员工的技能差距. 云安全联盟 (CSA) 最近发布 ...

  2. KubeSphere 开源社区 2022 年度回顾与致谢

    2022 年,国内的云原生技术生态日趋完善,细分技术项目也不断涌现,形成了完整的支撑应用云原生化的全生命周期技术体系.基础设施即代码.微服务.Serverless 等技术,促使基础设施资源向更加灵活弹 ...

  3. 快速搭建hadoop,zk,hbase的基础集群

    1. ZK集群,Hadoop集群,Hbase集群安装 Linux121 Linux122 Linux123 Hadoop MySQL ZK HBASE 1.1 安装Vmware,安装虚拟机集群 1.1 ...

  4. Windows 使用 Mingw-w64 配置GCC套件

    Mingw-w64里的gcc和g++应该是很多人常用的编译工具.但是他的下载资源很乱,不好找(注意:MinGW和MinGW-w64是同宗同源的两款软件!),要么就是版本太老.SourceForge上有 ...

  5. List、Set、Queue、Map

  6. DRF请求的生命周期

    作为一个工作3年左右的码农,在各种框架的摸爬滚打中,我也接触了不少前端后端的技术栈,其中DRF算是我后端日常工作中的用得最多的框架.今天就简单聊聊DRF请求的生命周期.由于篇幅原因,我在此篇文章中只是 ...

  7. selenium3环境搭建,Firefox与对应的geckodriver, chrome与对应的Chromedriver

    Firefox与对应的geckodriver 火狐下载:http://ftp.mozilla.org/pub/firefox/releases/ geckodriver下载:https://githu ...

  8. 使用sklearn中的Adaboost分类器来实现ORL人脸分类

    使用sklearn中的Adaboost分类器来实现ORL人脸分类 前言:博主上网浏览使用Adaboost实现人脸分类时,发现并没有分类,大部分全都是关于人脸识别检测的,并没有实现对某个人的精准分类(例 ...

  9. Linux日志轮替与总结

    目录 基本介绍 轮替文件的命名 配置文件 路径位置 参数说明 举例:把自己的日志加入日志轮替 说明 步骤 日志轮替机制原理[个人理解,仅供参考] 总结[关于日志需要掌握的点] 基本介绍 日志轮替就是把 ...

  10. Bulk-Crap-Uninstaller:一个高效卸载,轻松管理你的应用程序的.Net开源工具

    我们在工作中,经常需要安装大量的软件,随着应用程序的不断增多,管理这些软件变得非常困难. 下面介绍一款具备高效.简洁的特点,可以帮助我们快速卸载大量不需要的应用程序,让电脑管理变得更加轻松. 01 项 ...