Spring Boot 项目分层架构的实践总结
从 Controller 到 Mapper 的分层设计,讲清为什么要分层、每层该干什么。
Spring Boot 项目里最常见的结构就是分层:Controller、Service、Mapper 三层各司其职。很多人照做,却说不清为什么要这样分。这篇文章用大白话讲清楚分层的价值。
为什么分层
分层的核心目的只有一个:让代码各干各的,互不越权。Controller 负责接收请求和返回结果,Service 负责业务逻辑,Mapper 只负责和数据库打交道。
每一层该做什么
- Controller:参数校验、调用 Service、组装返回结果
- Service:业务逻辑、事务控制
- Mapper:SQL 的增删改查
常见的错误
最典型的错误是 Controller 直接注入 Mapper,跳过 Service 层。这样业务逻辑散落在 Controller 里,一旦逻辑变复杂,Controller 会越来越臃肿,难以维护。
// 错误示范:Controller 直接注入 Mapper
@RestController
public class UserController {
@Autowired
private UserMapper userMapper;
}
总结
分层不是教条,而是让代码在变复杂后依然可控。坚持 Controller 只调 Service,Service 才调 Mapper,项目会清爽很多。