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

在工做中,经过Swagger2对项目的controller进行配置,以便于用户测试restful服务接口提升开发效率。html

可是今天却出现了一个让我匪夷所思的问题就是在配置类里面加上@EnableWebMvc注解后(开启web配置支持)启动项目web

发现访问Swagger的ui界面404spring

 

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

 

发现Swagger-ui.html又能够访问到了,我记的@SpringBootApplication是默认开启自动配置webMvc的呀,那为何会这样子呢,restful

经过查找资料发现@EnableWebMvc这个注解不建议直接配置到@Configuration上测试

@EnableWebMvc注解会全面接管SpringMVC,全部的SpringMVC的自动配置都失效了,一般不这么干。ui

查看@EnableWebMvc源码发现,是继承的WebMvcConfigurationSupportrest

 

而后我去查了SpringBoot对MVC的自动配置WebMvcAutoConfiguration发现htm

@ConditionalOnMissingBean({WebMvcConfigurationSupport.class})
发现@EnableWebMvc加入以后会会取消SpringBoot的自动配置,自会提供最基础的功能

 因此根据总结不难发现,springboot对MVC的自动配置已经帮助咱们配置了应用开发中大部分的功能,咱们几乎不用去关闭修改,固然对Swagger的配置SpringBoot也帮助咱们blog

自动配置完成。

因此当咱们取消SpringBoot自动配置的时候加上了@EnableWebMvc以后,就须要本身配置Swagger

相关文章
相关标签/搜索