最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺析SpringMVC中的適配器HandlerAdapter

 更新時間:2021年01月13日 16:41:39   作者:阿南Nanth  
這篇文章主要介紹了SpringMVC中的適配器HandlerAdapter的相關資料,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

DispatcherServlte的initHandlerAdapters方法根據(jù)配置文件信息把HandlerAdapter注冊到handlerAdapters(List)中。

如果在配置文件中沒有配置,默認配置會讀取DispatcherServlte.properties文件,該文件中配置了三種HandlerAdapter:HttpRequestHandlerAdapter,SimpleControllerHandlerAdapter和AnnotationMethodHandlerAdapter。

SimpleControllerHandlerAdapter :繼承Controller方式所使用的適配器
HttpRequestHandlerAdapter   :HTTP請求處理器適配器
RequestMappingHandlerAdapter  :注解方式(@Controller)的處理器適配器

getHandler方法根據(jù)請求遍歷注冊到handlerAdapters中的適配器拿到對應的適配器處理。

for (HandlerMapping hm : this.handlerMappings) {
		HandlerExecutionChain handler = hm.getHandler(request);
		if (handler != null) {
		  return handler;
		}
}

HandlerAdapter接口有三個方法:

在這里插入圖片描述

supports方法:是判斷該適配器是否支持這個HandlerMethod,就是當?shù)玫揭粋€handler時,該接口子類該方法做判斷(就是類似handler instanceof Controller的判斷方式),用來得到適配這個handler的適配器子類。
handle方法:用來執(zhí)行控制器處理函數(shù),獲取ModelAndView 。就是根據(jù)該適配器調(diào)用規(guī)則執(zhí)行handler方法。

如果正常編寫調(diào)用,就需要使用多個if else判斷instance of

if(handler instanceof HttpRequestHandler){
 handle1();//HttpRequestHandler的處理方式
} else if (handler instanceof Controller){
 handle2();//Controller的處理方式
} else if (handler instanceof Servlet){
 handle3();//Servlet的處理方式
}

這種方法再添加新的處理器實現(xiàn)方式,就需要修改源碼,新增else添加處理邏輯,不符合對擴展開放,對修改關閉原則。使用了HandlerAdapter后,當需要新增一種處理器(Controller)時,只需要新增一個HandlerAdapter即可,判斷邏輯在他的supports方法中,處理邏輯在handle中,不需要修改任何其他代碼。

到此這篇關于淺析SpringMVC中的適配器HandlerAdapter的文章就介紹到這了,更多相關SpringMVC適配器HandlerAdapter內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java中將String轉(zhuǎn)換為char數(shù)組的三種方式

    Java中將String轉(zhuǎn)換為char數(shù)組的三種方式

    這篇文章主要介紹了三種將字符串轉(zhuǎn)換為字符數(shù)組的方法,分別是toCharArray()、charAt()和循環(huán)、getChars(),每種方法都有其適用場景和優(yōu)缺點,需要的朋友可以參考下
    2024-12-12
  • 更改Maven軟件源為阿里云源的方法詳解

    更改Maven軟件源為阿里云源的方法詳解

    這篇文章主要介紹了更改Maven軟件源為阿里云源的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • Java選擇結(jié)構(gòu)與循環(huán)結(jié)構(gòu)的使用詳解

    Java選擇結(jié)構(gòu)與循環(huán)結(jié)構(gòu)的使用詳解

    循環(huán)結(jié)構(gòu)是指在程序中需要反復執(zhí)行某個功能而設置的一種程序結(jié)構(gòu)。它由循環(huán)體中的條件,判斷繼續(xù)執(zhí)行某個功能還是退出循環(huán),選擇結(jié)構(gòu)用于判斷給定的條件,根據(jù)判斷的結(jié)果判斷某些條件,根據(jù)判斷的結(jié)果來控制程序的流程
    2022-03-03
  • Spring4.0 MVC請求json數(shù)據(jù)報406錯誤的解決方法

    Spring4.0 MVC請求json數(shù)據(jù)報406錯誤的解決方法

    這篇文章主要為大家詳細介紹了Spring4.0 MVC請求json數(shù)據(jù)報406錯誤的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • Java如何實現(xiàn)字符串每隔4位加空格

    Java如何實現(xiàn)字符串每隔4位加空格

    這篇文章主要介紹了Java如何實現(xiàn)字符串每隔4位加空格,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Map集合中獲取key-value值的實現(xiàn)方法

    Map集合中獲取key-value值的實現(xiàn)方法

    這篇文章主要介紹了Map集合中獲取key-value值的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 分析Netty直接內(nèi)存原理及應用

    分析Netty直接內(nèi)存原理及應用

    Netty作為一個流行的應用框架,它的強悍之處是性能強悍,可以輕松承載數(shù)萬并發(fā); 其編程模型簡單,容易上手; 這就給大家打開了一扇通向高性能的大門。高效io模型略去不說,我們今天主要來看看內(nèi)存控制這塊的強大之處
    2021-06-06
  • java協(xié)程框架quasar和kotlin中的協(xié)程對比分析

    java協(xié)程框架quasar和kotlin中的協(xié)程對比分析

    這篇文章主要為大家介紹了java協(xié)程框架quasar和kotlin兩個協(xié)程對比分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多基本
    2022-02-02
  • Map映射LinkedHashSet與LinkedHashMap應用解析

    Map映射LinkedHashSet與LinkedHashMap應用解析

    這篇文章主要為大家介紹了Map映射LinkedHashSet與LinkedHashMap的應用解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助祝大家多多進步
    2022-03-03
  • SpringCloud整合OpenFeign實現(xiàn)微服務間的通信

    SpringCloud整合OpenFeign實現(xiàn)微服務間的通信

    微服務之間的通信?式,通常有兩種: RPC 和 HTTP,在SpringCloud中, 默認是使?HTTP來進?微服務的通信, 最常?的實現(xiàn)形式有兩種:RestTemplate和OpenFeign,本文給大家介紹了SpringCloud整合OpenFeign實現(xiàn)微服務間的通信,需要的朋友可以參考下
    2024-06-06

最新評論

博客| 和政县| 肥城市| 衡山县| 清水县| 栾川县| 浪卡子县| 轮台县| 合川市| 霍邱县| 乌鲁木齐市| 通道| 新野县| 绥化市| 法库县| 家居| 霍林郭勒市| 广南县| 曲松县| 兴文县| 论坛| 景谷| 垫江县| 舒兰市| 遵化市| 祁连县| 闽侯县| 芮城县| 庆城县| 双鸭山市| 德化县| 友谊县| 横山县| 康马县| 平遥县| 图木舒克市| 辽宁省| 华容县| 久治县| 涞水县| 屏东市|