MVC、Spring MVC和三层架构




✅ 1. MVC 简洁理解

组件 职责
Model 数据与业务逻辑
View 显示数据(页面/响应)
Controller 接收请求、调度业务、返回视图

📌 一句话:

Controller 协调流程,Model 负责计算存储,View 负责展示输出。



🟦 2. MVC 架构图

1
2
3
4
5
6
7
8
9
10
11
+-------------+
| View | — 展示层
+-------------+
↑
+-------------+
| Controller | — 请求调度
+-------------+
↓
+-------------+
| Model | — 数据 + 业务
+-------------+


🟩 3. 三层架构与 MVC 区别

三层架构关注整个系统层次划分:

1
2
3
4
5
6
7
8
9
10
+-----------------------------+
| Presentation Layer (表现层) |
| ⇢ Controller + View |
+-----------------------------+
| Business Layer (业务层) |
| ⇢ Service |
+-----------------------------+
| Data Access Layer (数据层) |
| ⇢ Mapper / Repository |
+-----------------------------+

📌 对比结论:

区别点 MVC 三层架构
关注范围 表现层内部职责划分 整个系统结构
Model 包含何物 数据 + 业务 仅数据模型,业务放 Service
是否涉及数据库层 ❌ 不涉及 ✔ 包含

✔ 关键一句话总结:

MVC 作用于表示层,而三层架构覆盖整个系统。



🔶 4. Spring MVC 与 MVC 的关系

Spring MVC 是 Java Web 中对 MVC 的框架化实现。

在 Spring MVC 中对应关系:

MVC 概念 Spring MVC 实现
Controller @Controller / @RestController
Model Service + 实体类 + ModelMap
View Thymeleaf/JSP 页面 / JSON 响应
Dispatcher Spring 特有机制:DispatcherServlet


🟥 5. Spring MVC 请求执行流程图(关键理解)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
客户端请求
↓
DispatcherServlet (前端控制器)
↓
HandlerMapping 找 Controller
↓
Controller 处理逻辑,调用 Service
↓
Service 操作业务、调用 Mapper
↓
返回 Model 数据
↓
ViewResolver 找视图
↓
View 输出响应(页面/JSON)

📌 总结一句话:

Spring MVC = MVC 模式 + 调度器(DispatcherServlet)+ 自动路由与视图解析机制。



⭐ 最终总结版

✔ MVC 用于拆分表示层职责:Controller 调度,Model 处理数据逻辑,View 展示。
✔ 三层架构比 MVC 更大,它分表现层、业务层、数据层,强调系统整体解耦。
✔ Spring MVC 是 MVC 在 Java Web 下的实现,引入 DispatcherServlet 完成路由、参数解析、视图解析等工作。