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

概述

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

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

处理器适配器是什么

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

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

处理器适配器做用

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

Spring提供的处理器适配器

Spring为咱们提供了四种处理器适配器,以下图:it

  • SimpleServletHandlerAdapter 适配Servlet处理器
  • HttpRerquestHandlerAdapter 适配HttpRequestHandler处理器
  • RequestMappingHandlerAdapter 适配注解处理器
  • SimpleControllerHandlerAdapter 适配Controller处理器

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

总结

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

本节咱们主要从总体以及概念上阐述了Spring的HandlerAdapter,后续会逐个分析Spring提供的四种适配器,但愿本节对你们能有帮助,谢谢。请求

最后建立了qq群方便你们交流,可扫描加入,同时也可加我qq:276420284,共同窗习、共同进步,谢谢!程序

相关文章
相关标签/搜索