1. 程式人生 > >SpringMVC架構

SpringMVC架構

設計模式的 所有 沒有 程序 pri images 框架 .cn 什麽

1. 前言

SpringMVC是目前java世界中最為廣泛應用的web框架,最然從學習SpringMVC的第一個程序--helloworld至今,已有好幾個年頭。其間伴隨著項目的同時找資料,看文檔,也涉獵過部分源代碼,基本明白了SpringMVC是怎麽回事,遇到需求知道如何寫代碼,在哪寫代碼。但是對SpringMVC並沒有深入理解,並沒有一個系統的認識。對於涉及到配置或工作原理時,就顯得有些局促。尤其是SpringBoot用得越來越多,簡化了大量的配置,在一些比較高級的用法的時候感覺有點莫名奇妙,不知所以。所以,最近準備系統研究下web開發中大行其道的SpringMVC.


2. 頂級架構模式

當前主流的web mvc框架大都使用的是前端控制器模式(FrontController),什麽是前端控制器模式呢?
技術分享
前端控制器模式提供了一個集中的請求處理機制,所有的請求都將由一個單一的處理程序處理。該處理程序可以做一個通用的控制,如認證,授權,記錄日至或者跟蹤請求,然後將請求傳遞給響應的處理程序。以下是這種設計模式的主要組成部分:

  • 前端控制器(Front Controller):處理應用程序所有類型的請求,進行統一處理,解析請求參數,將請求發送給具體的Controller處理。
  • 調度器(Dispatcher/Controller):接收前端控制器的調度,調用相關對象處理請求。
  • 視圖模板(ViewTemplate):為響應請求而創建的模型視圖對象。

3. 頂級架構視圖

技術分享


4.架構實現流程

技術分享

  • SpringMVC使用一個Servlet(DispacherServlet)代理所有的請求,詳見前端控制器模式。將請求發送給對應的處理器處理,較好的分離了每一個處理器的職責。
  • 為什麽使用HandlerAdapter?
    SpringMVC中的處理器是方法級別的處理器,而非類級別的處理,這樣只要不定義類變量,就很容易在單例的情況下保證線程安全。同時對處理器進行統一封裝,最大程度重用代碼。

5.再談體系結構

技術分享

SpringMVC架構