1. 什么是 Spring Web MVC?
官方文档对 Spring MVC 的定义很明确:它是基于 Servlet API 构建的原始 Web 框架,从一开始就包含在 Spring Framework 中。它的正式名称'Spring Web MVC'来自其源模块(spring-webmvc),但通常简称为'Spring MVC'。
要理解它,得先知道 Servlet 是什么。Servlet 是一套 Java Web 开发的技术标准或规范。只有规范不能直接运行,需要有人去实现它。常见的实现了 Servlet 规范的产品包括 Tomcat、WebLogic、Jetty 等,它们被称为'Servlet 容器',用来管理程序员编写的 Servlet 类。
由此可知,Spring Web MVC 本质上是一个 Web 框架。但要真正吃透 Spring MVC,得先搞清楚 MVC 模式本身。
2. MVC 与 Spring MVC
2.1 MVC 定义
MVC(Model View Controller)是软件工程中的一种架构设计模式,将系统分为模型、视图和控制器三个部分。

- View(视图):专门用于与浏览器交互、展示数据的资源。
- Model(模型):应用程序的主体,处理数据逻辑。
- Controller(控制器):分发器,决定请求由哪个模型处理,以及处理后跳转回哪个视图。
举个生活中的例子:去饭店吃饭。
- 服务员接待点餐、上菜,相当于 View。
- 前厅根据菜单给后厨下达命令,相当于 Controller。
- 后厨负责做饭,相当于 Model。
2.2 Spring MVC 定义
MVC 是一种思想,而 Spring MVC 是对这种思想的具体实现,同时也是一个 Web 框架。
在创建 Spring Boot 项目时,勾选 Spring Web 模块其实就是引入了 Spring MVC 框架。Spring Boot 只是实现 Spring MVC 的一种方式,它通过添加依赖来集成功能。

核心依赖如下:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
现在的后端开发中,View 层往往不再返回 HTML 页面,而是返回数据(JSON 等),因为前端可能由独立的前端工程处理。但这并不改变 MVC 的核心逻辑。


