看官方文档:https://docs.spring.io/spring-boot/docs/2.2.5.RELEASE/reference/htmlsingle/#boot-features-spring-mvc-auto-configuration
自动配置在 Spring 的默认值之上添加了以下功能:
包括ContentNegotiatingViewResolver和BeanNameViewResolver豆。
支持提供静态资源,包括对 WebJars 的支持(本文档稍后介绍))。
自动注册Converter,GenericConverter和Formatter豆类。
支持HttpMessageConverters(在本文档后面介绍)。
的自动注册MessageCodesResolver(在本文档后面介绍)。
静态index.html支持。
自定义Favicon支持(本文档稍后介绍)。
ConfigurableWebBindingInitializerbean 的自动使用(本文档稍后介绍)。
如果您想保留那些 Spring Boot MVC 自定义并进行更多MVC 自定义(拦截器、格式化程序、视图控制器和其他功能),您可以添加自己@Configuration的类型类,WebMvcConfigurer但不添加 @EnableWebMvc.
如果你想提供的定制情况RequestMappingHandlerMapping,RequestMappingHandlerAdapter或者ExceptionHandlerExceptionResolver,仍然保持弹簧引导MVC自定义,你可以声明类型的豆WebMvcRegistrations,并用它来提供这些组件的定制实例。
如果你想利用Spring MVC中的完全控制,你可以添加自己的@Configuration注解为@EnableWebMvc,或者添加自己的@Configuration-annotatedDelegatingWebMvcConfiguration中的Javadoc中所述@EnableWebMvc。
官方文档的描述意思为如果想自己配置mvc,你只需要写一个类实现WebMvcConfigurer但不添加 @EnableWebMvc.添加自己@Configuration的类型类
通过搜素ContentNegotiatingViewResolver类可以看到他实现了ViewResolver类,就是视图解析器他重写了其中的方法
进去看源码
这里的意思是去遍历视图解析器,把他封装成对象,最后添加到候选的视图
自定义视图
因为所有的请求都会经过dispatchservlet其中的一个方法doDispatch(request, response);
debug模式可以看出自己定义的视图解析器成功