全面接管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
DelegatingWebMvcConfiguration
自动配置类
WebMvcAutoConfiguration
WebMvcConfigurationSupport
判断容器中,没有这个组件的时候
这个自动配置类才生效
@EnableWebMvc
将WebMvcConfigurationSupport组件导入进来
继承了WebMvcConfigurationSupport
此时,容器就有了这个组件
所以,自动配置类判断,如果已存在,不再起作用
导入的WebMvcConfigurationSupport
只是SpringMVC最基本的功能
比如,视图解析器、拦截器等等
都需要自定义来配置