从0开始搭建后台管理系统,这是No10。上一篇我们讲到了:创建第一个数据库表:用户表。这一节,我们就来创建系统模块,为后续的数据库访问做准备。
创建系统模块
用Trae打开项目,在主项目的pom.xm上右键->Maven->新建Module,在New Maven Module中选择Parent,输入“yuen-system”,然后回车,就增加了系统模块。
删除自动生成的java文件,把系统模块的包名设置为“cn.lovecto.yuen.system”。
一个模块的包结构应该包含什么?
一个模块的包结构应该包含domain(domain包含业务对象bo和视图对象vo)、mapper、service(包含接口和实现)、controller。这是分层架构和领域驱动设计(DDD) 结合的经典实践。这种结构通过明确各层职责边界 ,实现了 高内聚、低耦合的系统设计目标,为中大型项目的 可维护性、可扩展性、可测试性 提供了坚实基础。
- controller 层:系统入口(控制层)
- 核心职责 :处理HTTP请求/响应,参数校验,调用 service 层完成业务逻辑,并将结果包装为 vo 返回给前端。
- 设计意图 :作为系统与外部(前端/其他服务)的”桥梁”, 只做请求转发和响应封装 ,不包含业务逻辑。
- service 层:业务逻辑的核心(业务逻辑层)
- service 接口 :定义业务功能的契约(如”创建用户”、”提交订单”),明确业务能力边界。
- service 实现类 :实现接口定义的业务流程,调用 mapper 层访问数据,结合 domain.bo 处理核心业务规则。
- 设计意图 : 编排业务流程 ,将分散的业务能力组合为完整的业务场景。
- domain 层:业务模型的载体(领域层)
- domain.bo (Business Object,业务对象) :业务领域的核心模型,包含 业务属性 (如用户的姓名、余额)和 业务方法 (如用户的”扣款”、”升级会员”行为),封装了业务规则和状态。
- domain.vo (View Object,视图对象) :与前端/外部交互的数据结构,根据展示需求对 bo 进行 裁剪、组合或格式化 (如隐藏敏感字段、聚合多业务数据)。
- 设计意图 :将业务逻辑与技术实现分离,确保业务规则的 一致性和可复用性 。
- mapper 层:数据访问的抽象(数据访问层)
- 核心职责 :封装与数据库的交互细节(如SQL执行、结果映射),通常基于ORM框架(如MyBatis、JPA)实现。
- 设计意图 : 隐藏数据存储的技术细节 ,使上层业务逻辑无需关心数据如何持久化。
我们的后台管理系统的一个模块的包结构如下图:

LoveCTO

