Spring boot的Spring MVC自动配置原理

Spring MVC自动配置

搜索WebMvcAutoConfiguration
查询ContentNegotiatingViewResolver
Spring boot的Spring MVC自动配置原理

ContentNegotiatingViewResolver

点击进入
查找resolveViewName
Spring boot的Spring MVC自动配置原理

getCandidateViews

获取候选的视图对象

点击,进入
获取所有视图解析器,一个一个解析
Spring boot的Spring MVC自动配置原理

viewResolvers

获取所有的视图解析器

initServletContext方法
在IOC容器中,获取所有的视图解析器

可以自定义给容器中,添加一个视图解析器
只要在IOC容器中,就会自动的将其组合进来
Spring boot的Spring MVC自动配置原理

getBestView

得到最适合的视图对象

Formatter
格式化器

dateFormatter,格式日期
使用date-format,格式化日期
Spring boot的Spring MVC自动配置原理

addFormatters

添加格式化器,给Spring容器
Spring boot的Spring MVC自动配置原理

getBeansOfType

从IOC的BeanFactory中,获取所有的格式化器

自定义添加的格式化器转换器,只要放在容器中
就会自动的将其添加进来
Spring boot的Spring MVC自动配置原理

messageConverters

转换http请求和响应
从IOC容器中获取,所有的HttpMessageConverters

自定义添加的HttpMessageConverters,只要放在容器中
就会自动将其添加进来
点击,进入
Spring boot的Spring MVC自动配置原理

MessageCodesResolver

定义错误代码,生成规则

getMessageCodesResolverFormat
点击,进入
Spring boot的Spring MVC自动配置原理

ConfigurableWebBindingInitializer

初始化WebDataBinder
从IOC容器中获取

自定义的,只要添加到容器中
就会自动将其添加进来
Spring boot的Spring MVC自动配置原理
getConfigurableWebBindingInitializer
点击,进入
Spring boot的Spring MVC自动配置原理
ConfigurableWebBindingInitializer
点击,进入
Spring boot的Spring MVC自动配置原理

org.springframework.boot.autoconfigure.web

Web的所有自动场景
Spring boot的Spring MVC自动配置原理