淺析Spring MVC的工做原理及其與Spring的關係

Spring MVC屬於SpringFrameWork的後續產品,已經融合在Spring Web Flow裏面。Spring 框架提供了構建 Web 應用程序的全功能 MVC 模塊。使用 Spring 可插入的 MVC 架構,從而在使用Spring進行WEB開發時,能夠選擇使用Spring的SpringMVC框架或集成其餘MVC開發框架,如Struts1,Struts2等。
Spring MVC的整個工做過程是從一個HTTP請求開始: 
1)DispatcherServlet接收到請求後,根據對應配置文件中配置的處理器映射,找到對應的處理器映射項(HandlerMapping),根據配置的映射規則,找到對應的處理器(Handler)。 
2)調用相應處理器中的處理方法,處理該請求,處理器處理結束後會將一個ModelAndView類型的數據傳給DispatcherServlet,這其中包含了處理結果的視圖和視圖中要使用的數據。 
3)DispatcherServlet根據獲得的ModelAndView中的視圖對象,找到一個合適的ViewResolver(視圖解析器),根據視圖解析器的配置,DispatcherServlet將視圖要顯示的數據傳給對應的視圖,最後給瀏覽器構造一個HTTP響應。 DispatcherServlet是整個Spring MVC的核心。
DispatcherServlet負責接收HTTP請求組織協調Spring MVC的各個組成部分。其主要工做有如下三項: 
1)截獲符合特定格式的URL請求。 
2)初始化DispatcherServlet上下文對應的WebApplicationContext,並將其與業務層、持久化層的WebApplicationContext創建關聯。 
3)初始化Spring MVC的各個組成組件,並裝配到DispatcherServlet中。前端

而後簡單說一下Spring MVC與Spring的關係。Spring能夠說是一個管理bean的容器,也能夠說是包括不少開源項目的總稱,而Spring MVC是其中一個開源項目。若是簡單進行一個流程,當http請求一到,由容器(如:Tomcat)解析http造成一個request,經過映射關係(好比路徑,方法,參數)被Spring MVC一個分發器去找到能夠處理這個請求的bean,在Tomcat裏面就由Spring管理bean的一個池子(bean容器)裏面找到。處理完了就把響應返回。瀏覽器

基於Spring實現的MVC框架是不能不使用Spring的。單獨使用Spring MVC,由於其須要依賴IOC容器。可是若是單獨爲了更好的理解SpringMVC這種MVC框架,就把它和Struts/Struts2等一系列的MVC框架對比理解,理解其只是基於DispatcherServlet或者Filter作一個前端分發器,最終把這個框架引導起來,進行其本身的邏輯處理。
 架構

相關文章
相關標籤/搜索