springboot中關於springMvc默認配置,配置擴展,全面接管

1. apringMvc自動配置
springBoot整合springMVC時,提供了大量的自動化配置,相關的配置可查看org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration配置類。
在這裏插入圖片描述在靜態內部類org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration.WebMvcAutoConfigurationAdapter中,有許多springBoot關於springMvc相關的默認配置。
在這裏插入圖片描述

springBoot在自動配置組件時,會先判斷容器中是否有用戶自定義的配置(@Bean/@Component),如果有,就使用自定義的組件,如果沒有,則使用默認配置。有些組件可以有多個(如ViewResolver),springBoot會將用戶自定義的和系統默認的組件都生效。

2. springMvc配置擴展
編寫一個配置類,需要編著@Configuration註解,SpringMvc的擴展配置,需要繼承WebMvcConfigurerAdapter,並且不能標註@EnableWebMvc

@Configuration
public class MyMvcConfig extends WebMvcConfigurerAdapter {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/hello").setViewName("success");

在上面的擴展配置,將/hello請求指向success視圖對象。

3. 全面接管springMvc的自動配置
在擴展springMvc配置時,有一個約束就是不能標註@EnableWebMvc註解,因爲一旦用戶自定義的配置標註了該註解,則表示全面接管springBoot提供的默認配置,只生效用戶自定義部分。
當然,絕大多數情況,我們是不需要全面接管自動配置的。

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