spring boot 繼承WebMvcConfigurationSupport后自動配置不生效問題


  在spring boot的自定義配置類繼承 WebMvcConfigurationSupport 后,發現自動配置的靜態資源路徑(classpath:/META/resources/,classpath:/resources/,classpath:/static/,classpath:/public/)不生效。

  首先看一下 自動配置類的定義:

  

 

這是因為在 springboot的web自動配置類 WebMvcAutoConfiguration 上有條件注解 

@ConditionalOnMissingBean(WebMvcConfigurationSupport.class)

這個注解的意思是在項目類路徑中 缺少 WebMvcConfigurationSupport類型的bean時改自動配置類才會生效,所以繼承 WebMvcConfigurationSupport 后需要自己再重寫相應的方法。

  如果想要使用自動配置生效,又要按自己的需要重寫某些方法,比如增加 viewController ,則可以自己的配置類可以繼承  WebMvcConfigurerAdapter 這個類。不過在spring5.0版本后這個類被丟棄了 WebMvcConfigurerAdapter  ,雖然還可以用,但是看起來不好 = =。

  

  這是類上的注釋,意思是spring 5.0后要使用Java8,而在Java8中接口是可以有default方法的,所以這個類就沒必要了。所以我們只需要在自定義配置類中直接實現 

WebMvcConfigurer 接口就好了。如下:

 

 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM