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

淺析SpringMVC中的適配器HandlerAdapter

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

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

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

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

getHandler方法根據(jù)請(qǐng)求遍歷注冊(cè)到handlerAdapters中的適配器拿到對(duì)應(yīng)的適配器處理。

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

HandlerAdapter接口有三個(gè)方法:

在這里插入圖片描述

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

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

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

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

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

相關(guān)文章

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

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

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

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

    這篇文章主要介紹了更改Maven軟件源為阿里云源的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    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)是指在程序中需要反復(fù)執(zhí)行某個(gè)功能而設(shè)置的一種程序結(jié)構(gòu)。它由循環(huán)體中的條件,判斷繼續(xù)執(zhí)行某個(gè)功能還是退出循環(huán),選擇結(jié)構(gòu)用于判斷給定的條件,根據(jù)判斷的結(jié)果判斷某些條件,根據(jù)判斷的結(jié)果來控制程序的流程
    2022-03-03
  • Spring4.0 MVC請(qǐng)求json數(shù)據(jù)報(bào)406錯(cuò)誤的解決方法

    Spring4.0 MVC請(qǐng)求json數(shù)據(jù)報(bào)406錯(cuò)誤的解決方法

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

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

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

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

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

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

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

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

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

    Map映射LinkedHashSet與LinkedHashMap應(yīng)用解析

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

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

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

最新評(píng)論

长沙县| 祁连县| 赣州市| 钟祥市| 商南县| 炉霍县| 松潘县| 无棣县| 苗栗县| 乌兰浩特市| 三原县| 邓州市| 南康市| 桦川县| 广昌县| 邵武市| 乌鲁木齐市| 三明市| 新兴县| 汝南县| 冷水江市| 惠东县| 乌兰察布市| 郁南县| 元氏县| 邹城市| 台北县| 屯留县| 雷州市| 遂溪县| 屯门区| 合山市| 宽甸| 潼关县| 东莞市| 宜宾县| 西吉县| 洛宁县| 富锦市| 易门县| 宜昌市|