本文档由 g2rain-basis 的
# 模块与依赖边界
docs/architecture/dependencies.md 自动同步生成。本页是中央 java-domain-service 1.0.0 (opens new window) 在 Basis 中的具体落地。项目尚未完成的接入项统一记录在架构差异。
# 允许的方向
startup → biz → api
| 来源 | 允许依赖 | 禁止依赖 |
|---|---|---|
g2rain-basis-api | 通用模型、Spring Web/Validation 契约 | g2rain-basis-biz、g2rain-basis-startup、实现包 |
g2rain-basis-biz | g2rain-basis-api、持久化与平台 Starter、外部服务 API | g2rain-basis-startup |
g2rain-basis-startup | g2rain-basis-biz、Spring Boot 运行组件 | 供下层模块反向依赖的领域实现 |
# 包级边界
Controller → Service → DAO
└──→ Client
- Controller 负责 HTTP 协议、校验、权限入口和结果转换。
- Service 负责事务、幂等、状态迁移和领域安全约束。
- DAO 只负责持久化,不反向调用 Service 或 Controller。
- Converter 不发起数据库或网络调用。
- API 模块只发布稳定契约,不暴露 Biz 内部模型。
# Agent 检查清单
维护或生成项目文档时,Agent 应读取当前源码、POM、docs/project.yaml 和 Git Diff,动态检查:
- 根 POM 必须声明三个标准模块且不能出现未记录模块。
- API 不得依赖 Biz 或 Startup。
- Biz 必须依赖 API,且不得依赖 Startup。
- Startup 必须依赖 Biz。
- API 源码不得导入 Controller、Service、DAO、Config 或 Biz 实现包。
- 必需文档及相对链接必须有效。
- 新增模块、依赖或实现包是否已经同步到架构文档。
- 新增同步写契约是否说明调用方、权限、幂等、事务、重试、兼容和补偿。
WithoutIsolation路径是否由受信 Service 补足组织范围校验。
这些检查由 Agent 在任务期间执行并报告结果,不要求业务仓库维护专用验证脚本。
# 新模块规则
新增 Maven 模块时,同一提交必须更新 docs/project.yaml、本页和模块职责。引入新的长期架构边界时,还应增加 ADR。