SpringMVC系列之初次見面【概念、重要組件、執行流程】

一、什麼是Spring MVC

SpringMVC 是一種基於 Java 的實現 MVC 設計模型的請求驅動類型的輕量級 Web 框架,屬於 Spring FrameWork 的後續產品,已經融合在 Spring Web Flow 裏面。Spring 框架提供了構建 Web 應用程序的全功能 MVC 模塊。使用 Spring 可插入的 MVC 架構,從而在使用 Spring 進行 WEB 開發時,可以選擇使用 Spring的 Spring MVC 框架或集成其他 MVC 開發框架,如 Struts1(現在一般不用),Struts2 等。
SpringMVC 已經成爲目前最主流的 MVC 框架之一,並且隨着 Spring3.0 的發佈,全面超越 Struts2,成爲最優秀的 MVC 框架。
它通過一套註解,讓一個簡單的 Java 類成爲處理請求的控制器,而無須實現任何接口。同時它還支持RESTful 編程風格的請求。

二、SpringMVC的優勢

1、清晰的角色劃分:

  • 前端控制器(DispatcherServlet)
  • 請求到處理器映射(HandlerMapping)
  • 處理器適配器(HandlerAdapter)
  • 視圖解析器(ViewResolver)
  • 處理器或頁面控制器(Controller)
  • 驗證器( Validator)
  • 命令對象(Command 請求參數綁定到的對象就叫命令對象)
  • 表單對象(Form Object 提供給表單展示和提交到的對象就叫表單對象)。

2、分工明確,而且擴展點相當靈活,可以很容易擴展,雖然幾乎不需要。
3、由於命令對象就是一個 POJO,無需繼承框架特定 API,可以使用命令對象直接作爲業務對象。
4、和 Spring 其他框架無縫集成,是其它 Web 框架所不具備的。
5、可適配,通過 HandlerAdapter 可以支持任意的類作爲處理器。
6、可定製性,HandlerMapping、ViewResolver 等能夠非常簡單的定製。
7、功能強大的數據驗證、格式化、綁定機制。
8、利用 Spring 提供的 Mock 對象能夠非常簡單的進行 Web 層單元測試。
9、本地化、主題的解析的支持,使我們更容易進行國際化和主題的切換。
10、強大的 JSP 標籤庫,使 JSP 編寫更容易。

11、支持以下內容:RESTful風格請求、簡單的文件上傳、約定大於配置的契約式編程、基於註解的零配置等等。

三、SpringMVC的重要組件

  1. 前端控制器 DispatherServlet
  2. 處理器映射器
    BeanNameUrlHandlerMapping
    SimpleUrlHandlerMapping
    RequestMappingHandlerMapping
  3. 處理器適配器
    SimpleControllerHandlerAdapter
    HttpRequestHandlerAdapter
    RequestMappingHandlerAdapter
  4. 處理器 【由程序員自己實現】
  5. 視圖解析器 ViewResolver
  6. 攔截器

四、SpringMVC的執行流程

  1. 用戶發送請求到前端控制器DispatcherServlet,DispatherServlet將請求轉發給處理器映射器;
  2. 處理器映射器根據請求的url查找對應的處理器,找到之後,返回一個處理器執行鏈給DispatcherServlet;這個處理器執行鏈中包括:找到的那個處理器Handler【Object類型】和一組攔截器。
  3. DispatcherServlet請求處理器適配器;
  4. 處理器適配器執行處理器;
  5. 處理器適配器執行完成後,返回一個邏輯視圖對象ModelAndView給DispatcherServlet;
  6. DispatcherServlet請求視圖解析器解析邏輯視圖;
  7. 視圖解析器解析完成之後,返回View視圖對象給DispatcherServlet;
  8. DispatcherServlet使用模板數據和View渲染視圖頁面,響應給用戶。
    在這裏插入圖片描述

五、處理器映射器 和 處理器適配器 的詳解

筆者將SpringMVC的3種處理器映射器和3種處理器適配器的使用方法,總結在了一個圖中,大家可以下載學習。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章