欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

繼承WebMvcConfigurationSupport后自動(dòng)配置不生效及如何配置攔截器

 更新時(shí)間:2019年11月21日 14:10:17   作者:fmwind  
這篇文章主要介紹了繼承WebMvcConfigurationSupport后自動(dòng)配置不生效及如何配置攔截器,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

網(wǎng)上有很多文章說從spring boot2.0之后在構(gòu)造spring配置文件時(shí)建議推薦直接實(shí)現(xiàn)WebMvcConfigurer或者直接繼承WebMvcConfigurationSupport ,經(jīng)測(cè)試實(shí)現(xiàn)WebMvcConfigurer是沒問題,但繼承WebMvcConfigurationSupport類是會(huì)導(dǎo)致自動(dòng)配置失效的。

一、繼承WebMvcConfigurationSupport類是會(huì)導(dǎo)致自動(dòng)配置失效的原因

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

首先看一下 自動(dòng)配置類的定義:

這是因?yàn)樵?springboot的web自動(dòng)配置類 WebMvcAutoConfiguration 上有條件注解

@ConditionalOnMissingBean(WebMvcConfigurationSupport.class)

這個(gè)注解的意思是在項(xiàng)目類路徑中 缺少 WebMvcConfigurationSupport類型的bean時(shí)改自動(dòng)配置類才會(huì)生效,所以繼承 WebMvcConfigurationSupport 后需要自己再重寫相應(yīng)的方法。

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

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

二、繼承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后會(huì)導(dǎo)致自動(dòng)配置失效,所以這里要指定默認(rèn)的靜態(tài)資源的位置。同時(shí)要注意不能寫成

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • java8學(xué)習(xí)教程之lambda表達(dá)式的使用方法

    java8學(xué)習(xí)教程之lambda表達(dá)式的使用方法

    Java8最值得學(xué)習(xí)的特性就是Lambda表達(dá)式,下面這篇文章主要給大家介紹了關(guān)于java8學(xué)習(xí)教程之lambda表達(dá)式使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-09-09
  • Lombok?安裝和使用小技巧

    Lombok?安裝和使用小技巧

    這篇文章主要介紹了Lombok?安裝和使用指南,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-05-05
  • mybatis自動(dòng)掃描和自定義類注解方式

    mybatis自動(dòng)掃描和自定義類注解方式

    這篇文章主要介紹了mybatis自動(dòng)掃描和自定義類注解方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • JDK環(huán)境變量配置教程分享

    JDK環(huán)境變量配置教程分享

    這篇文章主要為大家分享了JDK環(huán)境變量配置教程,JDK環(huán)境變量的配置,是java開發(fā)中必備的配置
    2016-05-05
  • Java自動(dòng)取款機(jī)ATM案例實(shí)現(xiàn)

    Java自動(dòng)取款機(jī)ATM案例實(shí)現(xiàn)

    本文主要介紹了Java自動(dòng)取款機(jī)ATM案例實(shí)現(xiàn),整個(gè)過程可以分為三部分:登錄賬戶和執(zhí)行取款操作,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08
  • Spring整合Redis完整實(shí)例代碼

    Spring整合Redis完整實(shí)例代碼

    這篇文章主要介紹了Spring整合Redis完整實(shí)例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-04-04
  • Springboot+Redis執(zhí)行l(wèi)ua腳本的項(xiàng)目實(shí)踐

    Springboot+Redis執(zhí)行l(wèi)ua腳本的項(xiàng)目實(shí)踐

    本文主要介紹了Springboot+Redis執(zhí)行l(wèi)ua腳本的項(xiàng)目實(shí)踐,詳細(xì)的介紹Redis與Lua腳本的結(jié)合應(yīng)用,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • 談?wù)剬?duì)Java多態(tài)性的一點(diǎn)理解

    談?wù)剬?duì)Java多態(tài)性的一點(diǎn)理解

    多態(tài)就是指程序中定義的引用變量所指向的具體類型和通過該引用變量發(fā)出的方法調(diào)用在編程時(shí)并不確定,而是在程序運(yùn)行期間才確定,即一個(gè)引用變量倒底會(huì)指向哪個(gè)類的實(shí)例對(duì)象,該引用變量發(fā)出的方法調(diào)用到底是哪個(gè)類中實(shí)現(xiàn)的方法,必須在由程序運(yùn)行期間才能決定
    2017-08-08
  • 在編碼時(shí)如何使用\r與\n,兩者的區(qū)別

    在編碼時(shí)如何使用\r與\n,兩者的區(qū)別

    本篇文章是對(duì)\r與\n兩者的區(qū)別,以及編程語言中如何使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以參考下
    2015-07-07
  • 簡(jiǎn)單記事本java源碼實(shí)例

    簡(jiǎn)單記事本java源碼實(shí)例

    這篇文章主要介紹了簡(jiǎn)單記事本java源碼,以一個(gè)完整的實(shí)例形式分析了記事本的Java實(shí)現(xiàn)方法,對(duì)于Java應(yīng)用程序的開發(fā)有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2014-11-11

最新評(píng)論