SpringMVC原理 解析請求引數(原始碼分析)

2021-10-17 12:28:32 字數 1260 閱讀 6196

在使用springmvc的時候,我們經常編寫controller層的介面,並使用一些註解傳遞一些引數,那麼這些引數是怎麼封裝進我們的請求的呢?springmvc是怎麼解析這些引數的呢?本文主要通過原始碼分析springmvc解析請求引數的全過程。

編寫乙個controller類,裡面寫上乙個介面方法

在瀏覽器中輸入url保證介面可以正常返回:

http://localhost:8089/tracy/get/1?username=tracy
介面正常返回,準備工作結束。

重要

接下來是springmvc最核心的解析引數環節,在這裡通過解析器呼叫resolveargument方法對引數進行解析,並最終返回至引數陣列。

點進resolveargument方法進行檢視,在這裡springmvc對我們傳遞的引數進行真正的解析,包括引數名,引數值,並進行返回。

檢視springmvc的返回結果:發現解析出id的值為1,和我們在url中輸入的值一致。至此本次請求的第乙個引數便解析完畢,其他被不同註解標註的引數也會被不同的介面卡進行解析。

springmvc使用建議:

1、建立controller時盡量以單例模式建立,這樣可以減少建立物件和銷毀物件時的開銷。並且盡量不要在controller中宣告類變數或實力變數,所有的引數均使用形參進行傳遞,可以有效避免執行緒安全的問題。

2、springmvc處理請求流程:

spring mvc工作原理解析

springmvc各個元件間工作路線圖 springmvc實現controller的三種方式 實現controller介面 實現httprequesthandler介面 使用 controller註解 各個元件解析 1.前端控制器 dispacterservlet 由spring提供,不需要程式設計...

springmvc框架原理解析

框架執行流程 step1 使用者發起請求到前端控制器 step3 處理器對映器向前端控制器返回handler step4 前端控制器呼叫處理器介面卡去執行handler step5 處理器介面卡去執行handler step6 handler執行完給介面卡返回modelandview step7 處...

SpringMVC的原理解析

springmvc是當前最為優秀的一款mvc的框架,自從springmvc 2.5版本發布之後,由於支援了註解配置,大大的提公升了易用性。springmvc3.0也逐漸優化完善,在市場佔比超越了struts2。成為一款主流的web層框架。1.springmvc使用簡單,學習成本低。面向方法。學習難度...