spring mvc 执行流程和模块分解


前言

    本文通过阅读官方文档并结合代码调试的方式对spring mvc的执行流程和内部模块进行拆解,
主要目的在于学习spring的设计理念同时加深对其的了解。

Spring MVC官方文档 Version 5.3.22
https://docs.spring.io/spring-framework/docs/current/reference/html/web.html#mvc%20springmvc

Spring Web MVC是基于Servlet API构建的原始Web框架,从一开始就包含在Spring Framework中。正式名称“Spring Web MVC”来自其源模块(spring-webmvc)的名称,但它通常被称为“Spring MVC”。Spring Framework 5.0引入了一个反应式堆栈Web框架,其名称“Spring WebFlux”也基于其源模块(spring-webflux)。
Spring MVC与许多其他Web框架一样,是围绕前端控制器模式设计(DispatcherServlet)的,为请求处理提供共享算法,而实际工作由可配置的委托组件执行。此模型非常灵活,支持不同的工作流。Servlet DispatcherServlet与其它实现一样,需要根据 Servlet 规范使用 Java 配置或在 中声明和映射。反过来,使用Spring配置来发现请求映射,视图解析,异常处理等所需的委托组件。
DispatcherServlet Servlet web.xml DispatcherServlet


环境

组件 版本
spring web 5.3.8
java 11

一、spring mvc架构图

// TODO

二、spring mvc概要流程图

在这里插入图片描述

三、spring mvc 请求内部流程细则

spirng mvc流程细则v1

四、模块拆解

4.1.HandlerMapping

4.1.1.spring mvc怎么在一次请求中找到controller

4.1.2.RequestMappingInfo

4.1.3.HandlerMethod

4.2.HandlerAdapter

4.2.1.spring mvc怎么样调用controller(method)

4.2.2.RequestMappingHandlerAdapter

4.3.HttpMessageConverter


总结

以上就是今天要讲的内容,本文介绍了spring mvc的使用,经过对spring mvc的深入了解可以帮助我们在后面开发web应用时对各种常用组件(filter、intercepter、HttpMessageConverer)的使用和问题排查。

猜你喜欢

转载自blog.csdn.net/wangxudongx/article/details/126614296
今日推荐