一:簡介
WebMvcConfigurer是SpringBoot的一個配置類,采用JAVABean的形式來代替?zhèn)鹘y(tǒng)的xml配置文件形式,簡化了開發(fā)中類的配置,可以自定義一些Handler,Interceptor,ViewResolver,MessageConverter。可能大家之前一直用的是WebMvcConfigurer的空實現(xiàn)類WebMvcConfigurerAdapter,但是在Java8后這個類就被棄用了。
二:WebMvcConfigurer功能
所以我們今天主要講WebMvcConfigurer,從圖片上我們可以看出這個接口的主要提供了以下功能:
1.配置自定義攔截器
2.配置CORS實現(xiàn)跨域
3.視圖控制器配置
4.配置MessageConverter
三:功能簡單介紹
接下來我們就依次簡單講解一下這幾個功能如何實現(xiàn)。
3.1,配置自定義攔截器:
這里我們繼承了HandlerInterceptorAdapter攔截器接口實現(xiàn)自定義攔截器。
然后我們再實現(xiàn)WebMvcConfigurer接口,里面有一個addPathPatterns方法這個方法就是用于設(shè)置我們的自定義攔截器,可以在這個方法中設(shè)置攔截路徑等。
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new ReqInterceptor()).addPathPatterns("/**");
}
3.2,CORS實現(xiàn)跨域:
如果不知道跨域是什么意思的小伙伴可以自己去百度一下,其實就是一個瀏覽器從一個域名跨域到另一個域名會有問題,這時我們就可以在這個類的addCorsMAppings方法中配置一下。
/**
* 跨域支持
*/
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*") //瀏覽器允許所有的域訪問 / 注意 * 不能滿足帶有cookie的訪問,Origin 必須是全匹配
.allowCredentials(true) // 允許帶cookie訪問
.allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
.allowedHeaders("token")
.maxAge(3600);
}
3.3,視圖控制器配置:
這個配置用于直接通過路徑請求某個頁面,經(jīng)常用來配置網(wǎng)站的首頁。
/**
* 視圖控制器配置
*/
@Override
public void addViewControllers(ViewControllerRegistry registry) {
super.addViewControllers(registry);
registry.addViewController("/").setViewName("/index");
}
3.4,配置MessageConverter:
這個配置一般用的不多,他主要用來配置API請求返回時采用什么類型的轉(zhuǎn)換器進行轉(zhuǎn)換。我們經(jīng)常用到的就是fastJson轉(zhuǎn)換了。