2.2 KiB
2.2 KiB
Common Core 模块指引
职责边界
- 提供不依赖具体业务域的返回模型、异常、基础实体和 MyBatis-Plus 通用配置。
- 不引入订单、仓库、租户等领域实体,不调用业务服务,也不承载 Controller。
快速索引
| 功能 | 入口 |
|---|---|
| 统一响应与分页 | src/main/java/com/baiyue/common/core/api/ApiResponse.java、PageResult.java |
| 返回码与下游 code 还原 | src/main/java/com/baiyue/common/core/api/ResultCode.java;成功码是字符串 "200",ResultCode.of 的未知 code 降级为 B0001 |
| 业务异常 | src/main/java/com/baiyue/common/core/exception/BizException.java |
| 通用审计字段 | src/main/java/com/baiyue/common/core/model/BaseEntity.java |
| MyBatis-Plus 与审计人 | src/main/java/com/baiyue/common/core/mybatis/ |
| 有限重试与退避 | src/main/java/com/baiyue/common/core/retry/BoundedRetryPolicy.java;供多个服务的 Outbox 复用,不拥有持久化或投递逻辑 |
| 人工重试事务与凭据 | src/main/java/com/baiyue/common/core/outbox/OutboxOperations.java、EventOperationsTokenGuard.java;三个生产服务显式选择本库表及事件白名单,锁定 DEAD 原记录,状态恢复与审计同事务;不访问其他服务数据库或直接投递事件 |
| 响应契约测试 | src/test/java/com/baiyue/common/core/ApiResponseTest.java |
修改与验证
- 公共响应、错误码或基础实体变化会影响所有服务;先检索并同步修改全部消费者、测试和契约。当前正式模型不保留旧序列化或数据库兼容分支;若已有不可变外部契约,先单独定义升级规则。
ApiResponse.successful()只认字符串"200"。不得恢复旧成功码"0",也不得把code改成数字;前端和 Feign 调用方都按字符串严格判断。ResultCode.httpStatus保留错误分类元数据,但普通业务异常的实际 HTTP 状态由common-web/GlobalExceptionHandler统一收敛为 200;真实 HTTP 状态例外见../docs/统一响应约定改造方案-HTTP200.md。- 新能力只有被多个模块稳定复用时才放入本模块。
- 从父目录运行
mvn -pl common-core -am test。