Spring Web MVC:基於請求-響應模型的輕量級 Web 框架
Spring MVC 實現了經典的 Model-View-Controller 設計模式,將 Web 層職責解耦為模型(數據)、視圖(展示)、控制器(流程控制),核心目標是簡化日常 Web 開發。
核心架構角色
- 前端控制器:`DispatcherServlet`,統一接收所有請求,委派給下游組件處理。
- 處理器映射器:`HandlerMapping`,根據 URL 找到對應的 Controller。
- 處理器適配器:`HandlerAdapter`,統一調用各種形式的 Controller 方法。
- 視圖解析器:`ViewResolver`,將邏輯視圖名解析為具體 View 實現(JSP、Thymeleaf、FreeMarker 等)。
- 控制器:`@Controller` / `@RestController`,處理業務邏輯,返回 ModelAndView 或直接輸出數據。
請求處理完整流程
- 用戶發起 HTTP 請求,`DispatcherServlet` 攔截。
- `HandlerMapping` 根據請求 URL 查找匹配的 Handler(Controller 方法)。
- `HandlerAdapter` 調用 Handler 處理業務,返回 `ModelAndView` 或數據對象。
- `ViewResolver` 解析邏輯視圖名,渲染視圖生成 HTML/JSON 響應。
- 響應返回給客戶端。

核心優勢
- 約定優於配置:註解驅動、自動掃描、默認配置大幅減少 XML。
- 靈活的參數綁定:自動映射請求參數、路徑變量、Header、Cookie 到方法參數。
- 強大的數據校驗與格式化:JSR-303 校驗、自定義 Formatter、類型轉換體系。
- REST 風格原生支持:`@RequestMapping`、`@PathVariable`、`@ResponseBody` 構建 RESTful API。
- 攔截器機制:`HandlerInterceptor` 實現橫切關注點(日誌、權限、事務)。
掌握 Spring MVC 的核心流程與組件職責,是進階 Spring Boot、Spring Cloud 微服務開發的必經之路。