Spring MVC简介

131 阅读2分钟

什么是Spring MVC?

Spring MVC是Spring后续的一个产品,是spring的一个子项目,是Spring在表述层一共的一套完整的解决方案。

MVC 是模型(Model)、视图(View)、控制器(Controller)的简写,其核心思想是通过将业务逻辑、数据、显示分离来组织代码。

img

Spring MVC特点

  • SpringMVC遵守了MVC分层思想,上面提到有Model,View,Controller三层结构。

  • 采用了松耦合、插件式结构,更灵活、更具扩展性

  • Spring MVC是基于Spring的扩展、提供了一套完善的MVC注解

  • Spring MVC在数据绑定、视图解析都提供了多种处理方式,可灵活配置

  • Spring MVC对Restful URL设计方法提供了良好的支持,支持Restful风格

Spring MVC的本质工作就是:

  1. 接收并解析请求
  2. 处理请求
  3. 数据渲染、响应请求

Spring MVC核心组件

  • DispatcherServlet核心的中央处理器,负责接收请求、分发,并给予客户端响应。
  • HandlerMapping处理器映射器,根据 uri 去匹配查找能处理的 Handler ,并会将请求涉及到的拦截器和 Handler 一起封装。
  • HandlerAdapter处理器适配器,根据 HandlerMapping 找到的 Handler ,适配执行对应的 Handler
  • Handler请求处理器,处理实际请求的处理器。
  • ViewResolver视图解析器,根据 Handler 返回的逻辑视图 / 视图,解析并渲染真正的视图,并传递给 DispatcherServlet 响应客户端

Spring MVC工作原理

img

流程说明:

  1. 客户端(浏览器)发送请求, DispatcherServlet拦截请求。
  2. DispatcherServlet 根据请求信息调用 HandlerMappingHandlerMapping 根据 uri 去匹配查找能处理的 Handler(也就是我们平常说的 Controller 控制器) ,并会将请求涉及到的拦截器和 Handler 一起封装。
  3. DispatcherServlet 调用 HandlerAdapter适配器执行 Handler
  4. Handler 完成对用户请求的处理后,会返回一个 ModelAndView 对象给DispatcherServletModelAndView 顾名思义,包含了数据模型以及相应的视图的信息。Model 是返回的数据对象,View 是个逻辑上的 View
  5. ViewResolver 会根据逻辑 View 查找实际的 View
  6. DispaterServlet 把返回的 Model 传给 View(视图渲染)。
  7. View 返回给请求者(浏览器)。