@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

相關文章
相關標籤/搜索