Spring MVC MVC核心思想
MVC(Model-View-Controller)是经典的软件架构模式,通过职责分离实现松耦合设计。
三层职责
| 层次 | 职责 | Spring MVC 对应 |
|---|---|---|
| Model | 业务数据与逻辑 | Service、Entity、DAO |
| View | 页面展示 | JSP、Thymeleaf、JSON |
| Controller | 请求处理与调度 | @Controller |
架构图
Java
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Browser │────▶│ Controller │────▶│ Service │
└─────────────┘ └─────────────┘ └─────────────┘
▲ │ │
│ ▼ ▼
│ ┌─────────────┐ ┌─────────────┐
└────────────│ View │◀────│ Model │
└─────────────┘ └─────────────┘
核心思想
关注点分离
- Model 只关注数据与业务逻辑
- View 只关注页面渲染
- Controller 只关注请求分发
松耦合
- 各层通过接口交互
- 可独立替换某一层实现
- 便于单元测试
Spring MVC 实现
text
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/{id}")
public String getUser(@PathVariable Long id, Model model) {
User user = userService.findById(id); // Model
model.addAttribute("user", user); // 传递给 View
return "user/detail"; // View
}
}
与其他模式对比
| 模式 | 特点 |
|---|---|
| MVC | 经典三层,适合 Web 应用 |
| MVP | View 与 Model 完全隔离 |
| MVVM | 数据双向绑定,适合前端框架 |
Spring MVC 中 Controller 不直接操作 View,而是通过 ModelAndView 解耦。
要点总结
- Model 负责数据,View 负责展示,Controller 负责调度
- 三层职责单一,降低耦合度
- Spring MVC 通过注解简化 MVC 实现
- 核心是关注点分离和松耦合设计
📝 发现内容有误?点击此处直接编辑