Spring boot全面接管Spring MVC

全面接管Spring MVC

是指SpringBoot对SpringMVC的自动配置,不需要了
所有的,SpringMVC的自动配置都失效了
所有的,都需要自己配置

@EnableWebMvc

需要在配置类中添加@EnableWebMvc即可

//使用WebMvcConfigurerAdapter可以来扩展SpringMVC的功能
@EnableWebMvc   //全面接管SpringMVC
@Configuration
public class MyMvcConfig extends WebMvcConfigurerAdapter {

    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        // super.addViewControllers(registry);
        //浏览器发送 /atguigu 请求来到 success
        registry.addViewController("/atguigu").setViewName("success");
    }
}

使用场景

不推荐全面接管Spring MVC
如果,开发一些简单的功能,可以全面接管
可以节省内存空间,少配置很多的组件

往往,开发需要用到很多的功能
一般都会选择,使用自动配置的方式

实现原理

@EnableWebMvc
Spring boot全面接管Spring MVC_第1张图片
DelegatingWebMvcConfiguration
Spring boot全面接管Spring MVC_第2张图片
自动配置类
WebMvcAutoConfiguration
Spring boot全面接管Spring MVC_第3张图片

WebMvcConfigurationSupport

判断容器中,没有这个组件的时候
这个自动配置类才生效

@EnableWebMvc

将WebMvcConfigurationSupport组件导入进来
继承了WebMvcConfigurationSupport

此时,容器就有了这个组件
所以,自动配置类判断,如果已存在,不再起作用

导入的WebMvcConfigurationSupport
只是SpringMVC最基本的功能
比如,视图解析器、拦截器等等
都需要自定义来配置

你可能感兴趣的:(————Spring,Boot)