springboot中MVC自动配置原理

看官方文档: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模式可以看出自己定义的视图解析器成功
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值