Spring MVC 基本原理

本文最后更新于:2024年9月8日 晚上

Spring MVC 基本原理

概述

DispatcherServlet

  • Spring的web框架围绕DispatcherServlet设计,DispatcherServlet的作用是将请求分发到不同的处理器,从Spring 2.5开始,使用Java 5或者以上版本的用户可以采用基于注解的controller声明方式。
  • Spring MVC框架像许多其他MVC框架一样, 以请求为驱动 , 围绕一个中心Servlet分派请求及提供其他功能,DispatcherServlet是一个实际的Servlet (它继承自HttpServlet 父类)

Spring MVC执行原理

  • 图为Spring MVC的一个较完整的流程图,实线表示Spring MVC框架提供的技术,不需要开发者实现,虚线表示需要开发者实现。

简要分析执行流程

  1. DispatcherServlet表示前置控制器,是整个Spring MVC的控制中心,用户发出请求,DispatcherServlet接收请求并拦截请求。
  2. HandlerMapping为处理器映射,DispatcherServlet调用HandlerMapping,HandlerMapping根据请求url查找Handler
  3. HandlerExecution表示具体的Handler,其主要作用是根据url查找Controller
  4. HandlerExecution将解析后的信息传递给DispatcherServlet,如解析Controller映射等。
  5. HandlerAdapter表示处理器适配器,其按照特定的规则去执行Handler
  6. Handler让具体的Controller执行。
  7. Controller将具体的执行信息返回给HandlerAdapter,如ModelAndView
  8. HandlerAdapter将逻辑视图或模型传递给DispatcherServlet
  9. DispatcherServlet调用ViewResolver将逻辑视图解析为真实视图对象。
  10. ViewResolver将解析的真实视图对象返回DispatcherServlet
  11. DispatcherServlet利用是土地向对模型数据进行渲染。
  12. 最终视图呈现给客户端。