初識 SpringMVC

HuDu發表於2020-06-30

什麼是 MVC

搜首先了解一下什麼是 MVC,

  • MVC 指的是模型(Model)、檢視(View)、控制器(Controller),是一種軟體設計規範。
  • 是將業務邏輯、資料、顯示分離的方法來組織程式碼。
  • MVC主要作用是降低了檢視與業務邏輯間的雙向偶合。
  • MVC不是一種設計模式,MVC是一種架構模式。當然不同的MVC存在差異。

Model(模型):資料模型,提供要展示的資料,因此包含資料和行為,可以認為是領域模型或JavaBean元件(包含資料和行為),不過現在一般都分離開來:Value Object(資料Dao) 和 服務層(行為Service)。也就是模型提供了模型資料查詢和模型資料的狀態更新等功能,包括資料和業務。

View(檢視):負責進行模型的展示,一般就是我們見到的使用者介面,客戶想看到的東西。

Controller(控制器):接收使用者請求,委託給模型進行處理(狀態改變),處理完畢後把返回的模型資料返回給檢視,由檢視負責展示。也就是說控制器做了個排程員的工作。

最典型的MVC就是JSP + servlet + javabean的模式。

什麼是SpringMVC

Spring MVC 是 Spring Framework 的一部分,是基於 Java實現 MVC 的輕量級Web框架。

Spring MVC的特點:

  1. 輕量級,簡單易學

  2. 高效 , 基於請求響應的MVC框架

  3. 與Spring相容性好,無縫結合

  4. 約定優於配置

  5. 功能強大:RESTful、資料驗證、格式化、本地化、主題等

  6. 簡潔靈活

Spring的web框架圍繞DispatcherServlet [ 排程Servlet ] 設計。

DispatcherServlet的作用是將請求分發到不同的處理器。從Spring 2.5開始,使用Java 5或者以上版本的使用者可以採用基於註解形式進行開發,十分簡潔;

下面透過網上的一張圖瞭解 SpringMVC 的具體工作原理。

JwwRkIelxA.png!large

大致流程如下

  • 1.使用者發出一個請求url,會經過前端控制器,DispatcherServlet。DispatcherServlet呼叫HandlerMapping。DispatcherServlet會根據這個請求找到對映器,HandlerMapping,HandlerMapping根據請求url查詢Handler。
  • 2.HandlerExecution表示具體的Handler,主要是根據url查詢控制器,這裡為hello。
  • 3.根據對映器找到介面卡,HandlerAdapter,
  • 4.適配到我們寫的控制層程式碼Controller,然後由Controller呼叫Service層,Service層呼叫Dao層對資料庫進行CRUD等操作,然後將ModelAndView返回,即資料和跳轉的連線。
  • 5.根據ModelAndWiev找到具體的檢視解析器,檢視解析器返回給前端。
本作品採用《CC 協議》,轉載必須註明作者和本文連結