SSM框架知识点整合及核心要点(二)--SpringMVC 组件实现原理

SpringMVC 组件实现原理

执行逻辑图

SSM框架知识点整合及核心要点(二)--SpringMVC 组件实现原理

组件介绍

DispatcherServlet
DispatcherServlet 是整个流程控制的中心,由它调用其它组件处理用户的请求, DispatcherServlet 的存在降低了组件之间的耦合性。
MVC 模式: 传统定义,一个 WEB 应用中,只有唯一的一个控制器和客户端交互. 所有的 客户端请求和服务器单点接触. 这个控制器称为核心控制器(前端控制器)。 传统定义中,核 心控制器的实现使用 Servlet 实现。如:SpringMVC,Struts1。
MVC 优势: 单点接触,可以有效的解耦。可以实现功能的重用。
M - model,V - view,C - controller

HandlerMapping
HandlerMapping 负责 根据用户 请求找 到 Handler 即处 理器(如 :用户自 定义 的 Controller),springmvc 提供了不同的映射器实现不同的映射方式,例如:配置文件方式, 实现接口方式,注解方式等。
映射器相当于配置信息或注解描述。 映射器内部封装了一个类似 map 的数据结构。使 用 URL 作为 key,HandlerExecutionChain 作为 value。核心控制器,可以通过请求对象(请 求对象中包含请求的 URL)在 handlerMapping 中查询 HandlerExecutionChain 对象。
是 SpringMVC 核心组件之一。是必不可少的组件。无论是否配置,SpringMVC 会有默 认提供。
如 果 有 mvc:annotation-driven/ 标 签 配 置 , 默 认 的 映 射 器 : RequestMappingHandlerMapping 如果没有mvc:annotation-driven/标签配置,且使用注解开发 SpringMVC 代码,默认的 映射器是:RequestMappingHandlerMapping。(老版本中有其他的映射器,但是已经过时。)

HandlerAdapter
通过 HandlerAdapter 对处理器(Handler)进行执行,这是适配器模式的应用,通过扩 展适配器可以对更多类型的处理器进行执行。
典型的适配器: SimpleControllerHandlerAdapter。最基础的。处理自定义控制器 (Handler)和 SpringMVC 控制器*接口 Controller 之间关联的。
如 果 定 义 了 mvc:annotation-driven/ 标 签 配 置 , 使 用 适 配 器 对 象 为 : HttpRequestHandlerAdapter。
适配器也是 SpringMVC 中的核心组件之一。必须存在。SpringMVC 框架有默认值。

Handler
Handler 是 继 DispatcherServlet 前 端 控 制 器 的 后 端 控制 器 ( 自 定 义 控 制 器 ), 在 DispatcherServlet 的控制下 Handler 对具体的用户请求进行处理。由于 Handler 涉及到具体的 用户业务请求,所以一般情况需要程序员根据业务需求开发 Handler。
在 SpringMVC 中对 Handler 没有强制的类型要求。在 SpringMVC 框架中,对 Handler 的引用定义类型为 Object。
处理器理论上说不是必要的核心组件。
SpringMVC 框架是一个线程不安全的,轻量级的框架。一个 handler 对象,处理所有 的请求。开发过程中,注意线程安全问题。

ViewResolver
ViewResolver 负责将处理结果生成 View 视图,ViewResolver 首先根据逻辑视图名解析 成物理视图名即具体的页面地址,再生成 View 视图对象,最后对 View 进行渲染将处理结 果通过页面展示给用户。
是 SpringMVC 中 必 要 的 组 件 之 一 。 SpringMVC 提 供 默 认 视 图 解 析 器 。
InternalResourceViewResolver。内部资源视图解析器。
视图解析器是用于处理动态视图逻辑的。静态视图逻辑,不通过 SpringMVC 流程。直 接通过 WEB 中间件(Tomcat)就可以访问静态资源。

源码解读

SSM框架知识点整合及核心要点(二)--SpringMVC 组件实现原理