SpringBoot | 4.1 SpringMVC的自动配置 #yyds干货盘点#

男儿欲遂平生志,六经勤向窗前读。这篇文章主要讲述SpringBoot | 4.1 SpringMVC的自动配置 #yyds干货盘点#相关的知识,希望能为你提供帮助。
@TOC
前言【SpringBoot | 4.1 SpringMVC的自动配置 #yyds干货盘点#】SpringMVC定位于一个较为松散的组合,展示给用户的视图(View)、控制器返回的数据模型(Model)、定位视图的视图解析器(ViewResolver)和处理适配器(HandlerAdapter)等容器都是独立的。换句话说,通过SpringMVC很容易把后台的数据转换为各种类型的数据,以满足移动互联网数据多样化的要求。
本篇仅为简单介绍SpringMVC的大致组件与流程,详细过程将在后续篇章一一道来。
1. SpringMVC框架的设计与流程1.1 SpringMVC框架的示意图

SpringBoot | 4.1 SpringMVC的自动配置 #yyds干货盘点#

文章图片

1.2 SpringMVC的组件流程
SpringBoot | 4.1 SpringMVC的自动配置 #yyds干货盘点#

文章图片

大致流程是:首先是定义请求分发,让SpringMVC能够产生HandlerMapping;其次是接收请求获取参数;再次是处理业务逻辑获取数据模型ModelAndView;最后是绑定视图和数据模型。
以上组件将会在后续文章讲解,这里仅做一个大概介绍。
组件名称 组件说明
DispatcherServlet 核心组件,前端控制器;
LocalResolver 国际化解析器;
ThemeResolver 主体解析器;
HandlerMapping 处理器映射;
HandlerAdapter 处理器适配器;
HandlerExceptionResolver 处理器异常解析器;
RequestToViewNameTranslator 策略视图名称转换器;
ViewResolver 视图解析器;
FalshMapManager 不常用,FlashMap管理;
以上组件会在SpringMVC初始化时构建出来。
2. *自动配置的源码分析2.1 导入Web场景启动器
< dependency> < groupId> org.springframework.boot< /groupId> < artifactId> spring-boot-starter-web< /artifactId> < /dependency>

2.2 找到DispatcherServlet的属性文件前面提到SpringMVC的核心是DispatcherServlet前端控制器,因此我们找到它的属性文件DispatcherServlet.properties
SpringBoot | 4.1 SpringMVC的自动配置 #yyds干货盘点#

文章图片

它定义的对象在SpringMVC开始时就初始化,并且注册进Spring IoC容器中。此外,在这个jar包内定义了很多SpringMVC相关的组件。
3. 自动配置的官网描述官网地址:7.1.1. Spring MVC Auto-configuration
Spring Boot provides auto-configuration for Spring MVC that works well with most applications.(SpringBoot为SpringMVC提供了自动配置,因此大多场景我们都无需自定义配置)
The auto-configuration adds the following features on top of Spring’s defaults:
(自动化配置包括以下默认特性)
  • Inclusion of ContentNegotiatingViewResolver and BeanNameViewResolver beans.
    • 内容协商视图解析器和BeanName视图解析器;
  • Support for serving static resources, including support for WebJars (covered later in this document)).
    • 静态资源(包括webjars);
  • Automatic registration of Converter, GenericConverter, and Formatter beans.
    • 自动注册 Converter,GenericConverter,Formatter;
  • Support for HttpMessageConverters (covered later in this document).
    • 支持 HttpMessageConverters(后续文章有内容协商原理分析);
  • Automatic registration of MessageCodesResolver (covered later in this document).
    • 自动注册 MessageCodesResolver (国际化用,少用,一般直接开发两套页面);
  • Static index.html support.
    • 静态index.html 页支持;
  • Custom Favicon support (covered later in this document).
    • 自定义Favicon;
  • Automatic use of a ConfigurableWebBindingInitializer bean (covered later in this document).
    • 自动使用 ConfigurableWebBindingInitializer,(DataBinder负责将请求数据绑定到javaBean上);
4. 定制SpringMVC的初始化4.1 WebMvcConfigurer与WebMvcAutoConfiguration的关系图
SpringBoot | 4.1 SpringMVC的自动配置 #yyds干货盘点#

文章图片

在SpringBoot中,自定义通过配置类WebMvcAutoConfiguration定义的,它有一个静态的内部类WebMVCAutoConfigurationAdapter,通过它SpringBoot就自动配置了SpringMVC的初始化。
4.2 SpringMVC可配置项在WebMVCAutoConfigurationAdapter类中,它会读入Spring配置SpringMVC的属此来初始化对应组件,这样便能够在一定程度上实现自定义。可配置项如下:
SpringBoot | 4.1 SpringMVC的自动配置 #yyds干货盘点#

文章图片

除此之外,还可以实现WebMvcConfigurer接口加入自己定义的方法。
最后::: hljs-center
新人制作,如有错误,欢迎指出,感激不尽!
:::
::: hljs-center
欢迎关注公众号,会分享一些更日常的东西!
:::
::: hljs-center
如需转载,请标注出处!
:::
::: hljs-center
SpringBoot | 4.1 SpringMVC的自动配置 #yyds干货盘点#

文章图片

:::

    推荐阅读