91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SpringMVC中HandlerAdapter適配器的作用是什么

發布時間:2021-01-14 14:42:05 來源:億速云 閱讀:902 作者:Leah 欄目:開發技術

今天就跟大家聊聊有關SpringMVC中HandlerAdapter適配器的作用是什么,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

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

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

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

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

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

HandlerAdapter接口有三個方法:

SpringMVC中HandlerAdapter適配器的作用是什么

supports方法:是判斷該適配器是否支持這個HandlerMethod,就是當得到一個handler時,該接口子類該方法做判斷(就是類似handler instanceof Controller的判斷方式),用來得到適配這個handler的適配器子類。
handle方法:用來執行控制器處理函數,獲取ModelAndView 。就是根據該適配器調用規則執行handler方法。

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

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

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

看完上述內容,你們對SpringMVC中HandlerAdapter適配器的作用是什么有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

洪雅县| 滦平县| 明溪县| 桐柏县| 阿鲁科尔沁旗| 儋州市| 任丘市| 胶州市| 鹤壁市| 洪江市| 浮梁县| 翼城县| 民权县| 平乡县| 安多县| 富锦市| 开阳县| 大洼县| 西昌市| 平安县| 汤原县| 岳西县| 新龙县| 历史| 呼伦贝尔市| 敦煌市| 大石桥市| 抚远县| 河东区| 新闻| 庆城县| 同仁县| 团风县| 汕尾市| 红安县| 吉林市| 彩票| 连平县| 文成县| 彭阳县| 安岳县|