欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

繼承WebMvcConfigurationSupport后自動配置不生效及如何配置攔截器

網上有很多文章說從spring boot2.0之后在構造spring配置文件時建議推薦直接實現WebMvcConfigurer或者直接繼承WebMvcConfigurationSupport ,經測試實現WebMvcConfigurer是沒問題,但繼承WebMvcConfigurationSupport類是會導致自動配置失效的。

創(chuàng)新互聯公司長期為上千客戶提供的網站建設服務,團隊從業(yè)經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯網生態(tài)環(huán)境。為高邑企業(yè)提供專業(yè)的做網站、成都網站建設高邑網站改版等技術服務。擁有十載豐富建站經驗和眾多成功案例,為您定制開發(fā)。

一、繼承WebMvcConfigurationSupport類是會導致自動配置失效的原因

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

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

繼承WebMvcConfigurationSupport后自動配置不生效及如何配置攔截器

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

@ConditionalOnMissingBean(WebMvcConfigurationSupport.class)

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

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

繼承WebMvcConfigurationSupport后自動配置不生效及如何配置攔截器

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

二、繼承WebMvcConfigurationSupport類如何配置攔截器的

@Configuration
public class MyConfigurer extends WebMvcConfigurationSupport {
 
@Override
 protected void addInterceptors(InterceptorRegistry registry) {
  registry.addInterceptor(new MyInterceptor()).addPathPatterns("/**").excludePathPatterns("/emp/toLogin","/emp/login","/js/**","/css/**","/images/**");
  super.addInterceptors(registry);
 }
 
 @Override
 protected void addResourceHandlers(ResourceHandlerRegistry registry) {
  registry.addResourceHandler("/**").addResourceLocations("classpath:/static/");
  super.addResourceHandlers(registry);
 }
}

注意這段代碼:

registry.addResourceHandler("/**").addResourceLocations("classpath:/static/");

由于繼承WebMvcConfigurationSupport后會導致自動配置失效,所以這里要指定默認的靜態(tài)資源的位置。同時要注意不能寫成

registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持創(chuàng)新互聯。

新聞標題:繼承WebMvcConfigurationSupport后自動配置不生效及如何配置攔截器
網址分享:http://www.chinadenli.net/article46/jcodeg.html

成都網站建設公司_創(chuàng)新互聯,為您提供品牌網站制作品牌網站建設網站排名網站營銷自適應網站定制網站

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

外貿網站制作