Java 分层架构
Java 分层架构
一、Controller/ Service / Dao
这是现代企业级应用(尤其是 Java Web 应用)中常见的 分层架构模式,目的是解耦、提高可维护性和可测试性。
整体的架构图如下所示:
1 | |
1. DAO(Data Access Object)—— 数据访问层
职责:
- 封装对数据库的 CRUD 操作
- 只负责数据存取,不包含业务逻辑。
实现可以是原生 JDBC -> UserDao 接口 + 实现类或者 MyBatis -> @Mapper 接口
1 | |
✅DAO = 数据的“搬运工”,只管“拿”和“存”。
2. Service(业务逻辑层)
职责:
实现 核心业务逻辑(如注册、支付、订单处理)。
协调多个 DAO 操作(例如:注册用户 + 发送邮件 + 记录日志)。
无状态,可被多个 Controller 复用。
1 | |
✅Service = 业务的“大脑”,决定“做什么”和“怎么做”。
3. Controller(控制层)
职责:
接收 HTTP 请求
解析请求参数(JSON、路径变量、表单)
调用 Service 执行业务
封装响应结果(返回 JSON、跳转页面)
技术实现上一般是 Spring MVC 的 @RestController 或 @Controller
1 | |
✅ Controller = 系统的“门面”,负责“接客”和“传话”。
Ps. 传统 MVC (如早期 Spring MVC) ,Model 相当与这里的 Service + Dao + Entity, View 则是被独立出去,变成了前端(展示数据),Controller 上职责有一些变化(传统是协调 Model 和 View,而现在 Java web 中是负责接收 + 调用 Services)
Java 分层架构
https://dxblacksmith.github.io/2026/02/04/Java-分层架构/