在spring boot中使用@EnableWebMvc 一定要注意的問題!

有時我們需要自定義一個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默認配置,如此就沒有問題了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章