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提供的默认配置,只生效用户自定义部分。
当然,绝大多数情况,我们是不需要全面接管自动配置的。

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