说一下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)就可以访问静态资源。

源码流程图
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值