【Spring MVC】深度探險SpringMVC(二)——框架介紹
一、前言
從這篇部落格開始小編就正式向打擊介紹一下SpringMVC這個輕量級的框架,既然是輕量級自然就可以單獨使用了。也許你可能問為什麼要使用Spring MVC,Struts 2.x不才是主流嗎?我調查了一下,2014-2015年之間前10名基於Java的Web框架中,Spring MVC位列首位。
二、什麼是MVC?
在介紹Spring MVC之前呢,咱們得先說一下MVC,這個老設計模式了。
MVC 是一種使用 MVC(Model View Controller 模型-檢視-控制器)設計建立 Web 應用程式的模式:
Model(模型)表示應用程式核心(比如資料庫記錄列表)。
View(檢視)顯示資料(資料庫記錄)。
Controller(控制器)處理輸入(寫入資料庫記錄)。
三、什麼是SpringMVC?
3.1 步驟:
第一步:發起請求到前端控制器(DispatcherServlet)
第二步:前端控制器請求HandlerMapping查詢Handler,可以根據xml配置、註解查詢
第三步:處理器對映器HandlerMapping向前端控制器返回執行
第四步:前端控制器呼叫處理器介面卡去執行Handler
第五步:處理器介面卡去執行Handler
第六步:handler執行完,給介面卡返回modelandview
第七步:處理器介面卡向前端控制器返回modelAndview,modelandview是 springmvc框架的底層物件,包括Model和view
第八步:前端控制器請求檢視解析器去進行檢視解析,根據邏輯檢視名稱解析成真正的檢視(jsp)
第九步:檢視解析器向前端控制器返回view
第十步:前端控制器進行檢視渲染,檢視渲染將模型資料(modelAndview)填充到request域
十一步:前端控制器向用戶響應結果
3.2 元件:
1.前端控制器DispatcherServlet(不用程式設計師開發)
作用:接收請求,響應結果,相當於轉發器,有了他,減少其他元件的耦合度。
2.處理器對映器 HandlerMapping(不)
作用:根據請求的URl查詢handler。
3.處理器介面卡 handlerAdapter(不)
作用:按照特定規則(handlerAdapter要求的規則)執行handler。
4.處理器Handler(開發)
作用:編寫handler時按照HandlerAdapter的要求去做,這樣介面卡才可以正確執行Handler。
5.檢視解析器 view resolver(不)
作用:進行檢視解析,根據邏輯檢視名解析成真正的檢視(view)。
6.檢視view(開發)
作用:一個介面,實現類支援不同的view型別。
3.3 個人理解
前端控制器就相當於CPU,而處理器對映器就相當於處理的對映表,當我們的請求傳達到前端控制器的時候,前端控制器就會檢視對映表,看要把這個請求給那個部件處理。
當確定後,就會呼叫處理器對映器,把資訊處理給他,讓他來執行最後的處理器,當處理完畢後,就會把資訊返回出來。重新給前端控制器。
這個時候就應該把資料顯示的到使用者介面了,所以前端控制器會通過呼叫檢視解析器來對要顯示的檢視進行解析。然後檢視渲染顯示檢視。
四、小結
個人感覺springMvc的框架職責單一體現的非常淋漓盡致。每個部件都有自己單獨唯一的功能,這也就讓springMvc的系統更加的有水品,好拓展。非常的方便。我們要做到的就是要深刻的理解一下框架的各個部件,不同的部件的功能,以後開發學習的時候會更加的得心應手。