有時我們需要自定義一個spring mvc攔截器或者跨域之類的配置,然後在配置攔截器時會在config類上加上@EnableWebMvc,
然而這個註解會帶來一個問題,按官方的說法,@EnableWebMvc表示完全自己控制mvc配置,也就是說所有配置自己重寫,所有默認配置都沒了!有時會導致很多請求進不來,或者參數轉換出錯之類的,因爲spring mvc默認的轉換器已經不生效了,所以在大多數情況下我們需要的是在其基礎配置上添加自定義配置,因此在配置類上應該這樣寫
@Configuration
@EnableWebMvc
public class WebMvcConfig extends WebMvcAutoConfiguration implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
// 設置允許跨域的路徑
registry.addMapping("/**")
// 設置允許跨域請求的域名
.allowedOrigins("*")
// 是否允許證書 不再默認開啓
.allowCredentials(true)
// 設置允許的方法
.allowedMethods("*")
// 跨域允許時間
.maxAge(3600);
}
extends WebMvcAutoConfiguration 表示使用spring mvc默認配置,如此就沒有問題了