目錄
1. Spring MVC簡介
2. MVC架構模式
3. Spring MVC核心組件
4. 請求處理流程
5. 控制器詳解
6. 請求映射
7. 參數綁定
8. 數據驗證
9. 視圖解析器
10. 模型數據處理
11. 異常處理
12. 攔截器
13. 文件上傳下載
14. RESTful API
15. 配置詳解
總結
1. Spring MVC簡介
什么是Spring MVC?
Spring MVC是Spring框架中的一個模塊,專門用于構建Web應用程序。它基于MVC(Model-View-Controller)設計模式,提供了一個清晰的架構來分離業務邏輯、數據和表示層。
主要特點
- 松耦合:各層之間依賴性低,易于測試和維護
- 靈活性:支持多種視圖技術(JSP、Thymeleaf、JSON等)
- 易于擴展:提供豐富的擴展點
- 注解驅動:通過注解簡化配置
優勢
- 與Spring生態系統無縫集成
- 強大的數據綁定和驗證功能
- 靈活的URL映射
- 支持RESTful架構
- 優秀的測試支持
2. MVC架構模式
MVC模式概念
MVC是一種軟件架構模式,將應用程序分為三個核心組件:
Model(模型)
- 作用:負責數據和業務邏輯
- 包含:實體類、服務層、數據訪問層
- 特點:獨立于用戶界面
View(視圖)
- 作用:負責用戶界面的展示
- 包含:JSP頁面、Thymeleaf模板、JSON響應
- 特點:只負責顯示,不處理業務邏輯
Controller(控制器)
- 作用:處理用戶請求,協調Model和View
- 包含:接收請求、調用業務邏輯、返回視圖
- 特點:作為Model和View之間的橋梁
MVC工作原理
用戶請求 → Controller → Model → Controller → View → 用戶響應
3. Spring MVC核心組件
DispatcherServlet(前端控制器)
- 作用:Spring MVC的核心,負責分發請求
- 功能:接收所有請求,分發給相應的處理器
HandlerMapping(處理器映射器)
- 作用:根據請求URL找到對應的處理器
- 常用:RequestMappingHandlerMapping
HandlerAdapter(處理器適配器)
- 作用:執行找到的處理器
- 功能:適配不同類型的處理器
ViewResolver(視圖解析器)
- 作用:根據邏輯視圖名解析出具體視圖
- 常用:InternalResourceViewResolver
HandlerInterceptor(攔截器)
- 作用:在請求處理前后執行特定邏輯
- 應用:權限檢查、日志記錄等
4. 請求處理流程
完整流程圖解
1. 用戶發送請求到DispatcherServlet
2. DispatcherServlet查詢HandlerMapping找到處理器
3. DispatcherServlet調用HandlerAdapter執行處理器
4. 處理器執行業務邏輯,返回ModelAndView
5. DispatcherServlet將ModelAndView傳給ViewResolver
6. ViewResolver解析出具體View
7. View渲染模型數據
8. 返回響應給用戶
詳細步驟說明
- 請求接收:DispatcherServlet接收HTTP請求
- 映射查找:根據URL查找對應的Controller方法
- 參數綁定:將請求參數綁定到方法參數
- 業務處理:執行Controller方法
- 視圖解析:解析返回的視圖名
- 響應返回:渲染視圖并返回給客戶端
5. 控制器詳解
@Controller注解
@Controller
public class UserController {// 控制器方法
}
@RestController注解
@RestController // 等同于 @Controller + @ResponseBody
public class ApiController {// RESTful AP