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,共同窗習、共同進步,謝謝!程序

相關文章
相關標籤/搜索