资讯专栏INFORMATION COLUMN

SpringMVC之源码分析--HandlerAdapter(一)

dingda / 2572人阅读

摘要:本系列文章是基于。说这么多就是想解释下什么是适配器。本节我们主要从整体以及概念上阐述了的,后续会逐个分析提供的四种适配器,希望本节对大家能有帮助,谢谢。最后创建了群方便大家交流,可扫描加入,同时也可加我,共同学习共同进步,谢谢

概述

本章开始,我们分析Spring MVC的另一个重要组件,即HandlerAdapter,从命名上我即可直观的理解为处理器适配器,那么处理器适配器是什么意思?Spring MVC为什么要使用处理器适配器即其要解决什么问题?以及Spring提供了哪些处理器适配器?带着这些问题,我们进行下面的分析。

本系列文章是基于Spring5.0.5RELEASE。

处理器适配器是什么

在介绍处理器适配器之前,我们先介绍什么是适配器,望文生义我们可以知道就是做适配的东西,比如在智能手机之前,我们用的手机五花八门,每种手机都对应着相应的充电器(有直充和座充),不同类型手机的充电器不能使用,当时市场有一款叫“万能充电器”的设备,它就是适配不通类型手机电池的,以达到使用相同设备为不同手机充电的要求。再比如现在笔记本电脑上几乎都没有VGA接口,在进行接入投影是,需要一个HDMI转VGA的转换器,这个设备也是为了适配投影仪接入的。说这么多就是想解释下什么是适配器。

那么处理器适配器又是什么呢?在Spring MVC中可以支持多种处理器(处理器也就是处理用户请求的程序),各种处理器中的处理方法各不相同,Spring为了解决适应多种处理器,定义了处理器适配器的概念,也就是我们所说的HandlerAdapter。

处理器适配器作用

Spring MVC为我们提供了多种处理用户的处理器(Handler),Spring实现的处理器类型有Servlet、Controller、HttpRequestHandler以及注解类型的处理器,即我们可以通过实现这些接口或者注解我们的类来使用这些处理器,那么针对不同类型的处理器,如何将用户请求转发到相应类型的处理器方法中的呢,这就需求Spring MVC的处理器适配器来完成适配操作,这就是处理器适配器要完成的工作。

Spring提供的处理器适配器

Spring为我们提供了四种处理器适配器,如下图:

SimpleServletHandlerAdapter 适配Servlet处理器

HttpRerquestHandlerAdapter 适配HttpRequestHandler处理器

RequestMappingHandlerAdapter 适配注解处理器

SimpleControllerHandlerAdapter 适配Controller处理器

Spring MVC默认使用的处理器适配器为:HttpRequestHandlerAdapter、SimpleServletHandlerAdapter、RequestMappingHandlerAdapter三种。

总结

Spring HandlerAdapter是适配器模式的实现,它的好处就是易扩展,在我们想增加一种处理时,只需要实现HandlerApapter就可以了,不用动任何其他存在的代码,这种模式符合开闭原则。

本节我们主要从整体以及概念上阐述了Spring的HandlerAdapter,后续会逐个分析Spring提供的四种适配器,希望本节对大家能有帮助,谢谢。

最后创建了qq群方便大家交流,可扫描加入,同时也可加我qq:276420284,共同学习、共同进步,谢谢!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/69529.html

相关文章

  • SpringMVC源码分析--HandlerAdapter(二)

    摘要:概述本章我们主要分析处理组件的处理流程以及其接口源码。概括来说,使用组件分为两步,首先是注册组件,其次是处理用户请求,以下针对这两个过程进行详细的分析。本系列文章是基于。接下来的几章将分析提供的适配策略,希望本节对大家能有帮助,谢谢。 概述 本章我们主要分析Spring处理HandlerAdapter组件的处理流程以及其接口源码。概括来说,Spring使用HandlerAdapter组...

    Eastboat 评论0 收藏0
  • SpringMVC源码分析--HandlerAdapter(三)

    摘要:概述回顾上两章,我们主要分析了的概念作业以及如何使用的组件,本节以及后续几章,将介绍为我们提供的的具体实现类,基于源码和设计层面进行介绍,欢迎大家关注。本系列文章是基于。 概述 回顾上两章,我们主要分析了HandlerAdapter的概念、作业以及Spring MVC如何使用的HandlerAdapter组件,本节以及后续几章,将介绍Spring为我们提供的HandlerAdapter...

    Dionysus_go 评论0 收藏0
  • “过时”的SpringMVC我们到底在用什么?深入分析DispatchServlet源码

    摘要:问题来了,我们到底还在用吗答案是,不全用。后者是初始化的配置,主要是的配置。启动类测试启动项目后,在浏览器里面输入。通过查询已装载的,并且支持该而获取的。按照前面对的描述,对于而言,这个必定是。的核心在的方法中。 之前已经分析过了Spring的IOC(《零基础带你看Spring源码——IOC控制反转》)与AOP(《从源码入手,一文带你读懂Spring AOP面向切面编程》)的源码,本次...

    array_huang 评论0 收藏0
  • SpringMVC源码分析--ViewResolver(

    摘要:概述本章开始进入另一重要的组件,即视图组件,处理视图组件使用两个主要的接口是和。接口的作用是用于处理视图进行渲染。延用之前的介绍流程,本章分两部分进行阐述启动初始化和请求处理。 概述 本章开始进入另一重要的组件,即视图组件,Spring MVC处理视图组件使用两个主要的接口是ViewResolver和View。根据名称可知,ViewResolver即视图解析器,其作用是把逻辑视图名称解...

    pf_miles 评论0 收藏0
  • spring-MVC源码解读()

    摘要:处理器是继前端控制器的后端控制器,在的控制下对具体的用户请求进行处理。由于涉及到具体的用户业务请求,所以一般情况需要程序员根据业务需求开发。 1、mcv整体架构和流程 showImg(https://segmentfault.com/img/bV55Qq?w=860&h=406); 用户发送请求至前端控制器 DispatcherServlet DispatcherServlet 收到...

    I_Am 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<