架構師帶你了解SpringMVC框架

JavaEE體系結構包括四層,從上到下分別是應用層、Web層、業務層、持久層。Struts和SpringMVC是Web層的框架,Spring是業務層的框架,Hibernate和MyBatis是持久層的框架。

架構師帶你瞭解SpringMVC框架

為什麼要使用SpringMVC?

很多應用程序的問題在於處理業務數據的對象和顯示業務數據的視圖之間存在緊密耦合,通常,更新業務對象的命令都是從視圖本身發起的,使視圖對任何業務對象更改都有高度敏感性。而且,當多個視圖依賴於同一個業務對象時是沒有靈活性的。

SpringMVC是一種基於Java,實現了Web MVC設計模式,請求驅動類型的輕量級Web框架,即使用了MVC架構模式的思想,將Web層進行職責解耦。基於請求驅動指的就是使用請求-響應模型,框架的目的就是幫助我們簡化開發,SpringMVC也是要簡化我們日常Web開發。

MVC設計模式

MVC設計模式的任務是將包含業務數據的模塊與顯示模塊的視圖解耦。這是怎樣發生的?在模型和視圖之間引入重定向層可以解決問題。此重定向層是控制器,控制器將接收請求,執行更新模型的操作,然後通知視圖關於模型更改的消息。

架構師帶你瞭解SpringMVC框架

架構師帶你瞭解SpringMVC框架

SpringMVC架構

SpringMVC是Spring的一部分,如圖:

架構師帶你瞭解SpringMVC框架

SpringMVC的核心架構:

架構師帶你瞭解SpringMVC框架

具體流程:

(1)首先用戶發送請求——>DispatcherServlet,前端控制器收到請求後自己不進行處理,而是委託給其他的解析器進行處理,作為統一訪問點,進行全局的流程控制;

(2)DispatcherServlet——>HandlerMapping,映射處理器將會把請求映射為HandlerExecutionChain對象(包含一個Handler處理器(頁面控制器)對象、多個HandlerInterceptor攔截器)對象;

(3)DispatcherServlet——>HandlerAdapter,處理器適配器將會把處理器包裝為適配器,從而支持多種類型的處理器,即適配器設計模式的應用,從而很容易支持很多類型的處理器;

(4)HandlerAdapter——>調用處理器相應功能處理方法,並返回一個ModelAndView對象(包含模型數據、邏輯視圖名);

(5)ModelAndView對象(Model部分是業務對象返回的模型數據,View部分為邏輯視圖名)——> ViewResolver, 視圖解析器將把邏輯視圖名解析為具體的View;

(6)View——>渲染,View會根據傳進來的Model模型數據進行渲染,此處的Model實際是一個Map數據結構;

(7)返回控制權給DispatcherServlet,由DispatcherServlet返回響應給用戶,到此一個流程結束。

想要學習Dubbo框架、zookeper基本原理、redis分佈式緩存、JVM性能優化,Nginx+apache+Tomcat集群部署、大數據hadoop,Hbase實時計算spark、storm、數據分析分詞和權重等核心技術;需要的可以關注之後私信哈,記得要點贊轉發噢!!!


分享到:


相關文章: