码迷,mamicode.com
首页 > Web开发 > 详细

@EnableWebMvc 注解会让Swagger无效访问的问题

时间:2019-01-15 11:50:19      阅读:367      评论:0      收藏:0      [点我收藏+]

标签:访问   全面   enable   项目   9.png   config   开启   miss   自动   

在工作中,通过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无效访问的问题

标签:访问   全面   enable   项目   9.png   config   开启   miss   自动   

原文地址:https://www.cnblogs.com/h-java/p/10270567.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!