本次基线沉淀的取舍原则:
/Users/malk/Desktop/Tech/claude/后端/mjava-baseline.md,因为那里能被跨仓库(包括 akds / mjava-guangming / 未来新客户项目)共享引用;仓库内 openspec/specs/project-baseline.md 只做指针 + 代码锚点,避免两地维护同一份规范。| 维度 | 约定 | 实现锚点 |
|---|---|---|
| HTTP 请求 | 统一 UtilHttp(Hutool 封装),禁三方 SDK |
mjava/src/main/java/com/malk/utils/UtilHttp.java |
| Token 缓存 | 统一 UtilToken (TimedCache),禁每请求重取 |
mjava/src/main/java/com/malk/utils/UtilToken.java |
| 鉴权参数来源 | 只读 application-*.yml,禁硬编码/请求入参传入 |
@ConfigurationProperties |
| 响应结构 | Controller 返 McR<T>,第三方映射 VenR |
com.malk.server.common/ |
| 全局异常 | CatchException 拦截;业务抛 McException |
com.malk.filter.CatchException |
| 持久化 | JPA + QueryDSL + BaseRepository + BasePo;禁 MyBatis 混用 |
com.malk.base/ |
| 链路追踪 | TraceIdFilter + logback %X{traceId:-} |
com.malk.filter.TraceIdFilter |
| 配置管理 | application-{dev,test,prod}.yml;敏感走环境变量 |
mjava/src/main/resources/ |
java-mcli (根 pom,packaging=pom)
├── mjava (基座 jar,无 repackage,可被依赖)
├── mjava-mcli (客户模板:最小化 Boot.java + application-*.yml)
├── mjava-shunfeng (客户:会议聚合)
└── mjava-guangming (客户:钉钉 SSO 邮箱)
新客户接入 = 复制 mjava-mcli → 改 artifactId/port/context-path → 根 pom <modules> 追加。
启动类必须 @SpringBootApplication(scanBasePackages = {"com.malk"}),才能扫到 mjava 基座所有 bean。
mjava-baseline 做一份 IDE 模板或 archetype这些话题等有真实需求时再各自立新 change。