Spring MVC 框架简单解析

写在前面,基本基于guide哥的博客。做一遍笔记加深自己的印象。

Spring MVC 简介

Spring MVC是以请求为驱动的,围绕着servlet 而设计,将请求分发给控制器,然后通过模型对象,分派器来展示 请求结果视图。核心类是 dispatcherServlet ,它是一个servlet ,顶层是实现的 servlet 接口。

Spring MVC 工作原理

为了加深自己的印象,我照着手画一个原理图:

Spring MVC 框架简单解析
总共有以下几个步骤:

  • 客户端发送请求
  • 前端控制器 dispatcherServlet 接受客户端请求
  • 找到处理器映射 handlerMapping 解析请求对应的 Handler
  • handleradapter 根据handler调用真正的处理器来处理请求,并处理相应的逻辑
  • 处理器返回一个模型视图 modelandview
  • 视图解析器进行解析
  • 返回一个视图对象
  • 前端控制器 dispatcherServlet 渲染 model 数据
  • 将视图对象返回给用户

前端控制器和处理器映射器以及视图解析器都不需要工程师开发。控制器需要后台人员开发, 视图VIEW需要前台人员开发。

前面 5 点比较重要:

(1)客户端(浏览器)发送请求,直接请求到 DispatcherServlet。

(2)DispatcherServlet 根据请求信息调用 HandlerMapping,解析请求对应的 Handler。

(3)解析到对应的 Handler(也就是我们平常说的 Controller 控制器)后,开始由 HandlerAdapter 适配器处理。

(4)HandlerAdapter 会根据 Handler 来调用真正的处理器开处理请求,并处理相应的业务逻辑。

(5)处理器处理完业务后,会返回一个 ModelAndView 对象,Model 是返回的数据对象,View 是个逻辑上的 View。

(6)ViewResolver 会根据逻辑 View 查找实际的 View。

(7)DispaterServlet 把返回的 Model 传给 View(视图渲染)。

(8)把 View 返回给请求者(浏览器)