穿越Java - 开发框架篇 第三章 Spring Mvc | 第2节Spring Mvc 工作原理

主题:Spring Mvc 的工作原理

开发环境

基于:IntelliJ IDEAMaven构建工具JDK1.8SpringBoot 2.3.4Spring4.3.28编写。

官人如需使用 IDEA 请阅读教程:IntelliJ IDEA
官人如需使用 Maven 请阅读教程:Maven 构建工具的下载与安装

更多干货

请参考:《穿越 Java 之 语法基础篇》 系列文章
请参考:《穿越 Java 之 Web基础篇 》系列文章
请参考:《穿越 Java 之 开发必备框架篇 》 系列文章
请阅读:《穿越 Java 之 SpringBoot框架篇》系列文章
请阅读:《穿越 Java 之 SpringCloud微服务架构篇》 系列文章

原理

  • 在这里插入图片描述

解读:

  • Http 请求到 DispatcherServlet

  • (1) 客户端请求提交到 DispatcherServlet。
    HandlerMapping 寻找处理器

  • (2) 由 DispatcherServlet 控制器查询一个或多个 HandlerMapping,找到处理请求的
    Controller。
    调用处理器 Controller

  • (3) DispatcherServlet 将请求提交到 Controller。
    Controller 调用业务逻辑处理后,返回 ModelAndView

  • (4)(5)调用业务处理和返回结果:Controller 调用业务逻辑处理后,返回 ModelAndView。
    DispatcherServlet 查询 ModelAndView

  • (6)(7)处理视图映射并返回模型: DispatcherServlet 查询一个或多个 ViewResoler 视图解析器,
    找到 ModelAndView 指定的视图。
    ModelAndView 反馈浏览器 HTTP

  • (8) Http 响应:视图负责将结果显示到客户端

组件

  • 在这里插入图片描述
  • DispatcherServlet在TomCat容器中创建时会调用自己的生命周期方法,创建Spring容器,并将Spring容器封装到Application域对象中,在容器启动时初始化九大组件

1. initMultipartResolver(context); 解决文件上传的组件

2. initLocaleResolver(context); 国际化解析组件

3. initThemeResolver(context); 皮肤解析组件

4. initHandlerMappings(context); 处理映射器,根据url地址找到后台 处理器

5. initHandlerAdapters(context); 处理器适配器

6. initHandlerExceptionResolvers(context); 处理器的异常解析器

7. initRequestToViewNameTranslator(context); 如果没有视图返回的情况下,根据请求来解析视图名

8. initViewResolvers(context); 视图解析器,负责根据逻辑视图名称,结合数据,渲染视图

9. initFlashMapManager(context); 重定向传值的组件

猜你喜欢

转载自blog.csdn.net/weixin_47371330/article/details/109332247