在工做中,經過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