双端同步流程(Rro ↔ X)
RuleApiPro ↔ RuleApiX(后端)、RuleAppRro ↔ RuleAppX(前端)双端镜像的同步规范与检查清单。
1. 为什么要双端
- 后端:RuleApiPro(JDK8)与 RuleApiX(JDK21/SpringBoot4)双版本,兼容不同运行环境。
- 前端:RuleAppRro(Vue2)与 RuleAppX(Vue3),覆盖不同编译基线。
- 同步规则:功能先在 Pro/Rro 实现并验收,确认后同步到 X;两边必须保持行为一致。
2. 后端同步(Pro → X)
| 变更类型 | 需同步的文件 |
|---|---|
| 新接口/逻辑 | web/*.java |
| 表结构 | resources/*.sql + InstallController 迁移段 |
| 实体 | entity/*.java |
| SQL | resources/mapper/*.xml |
差异注意:
- SpringBoot 4 中部分 Starter 改名(如 aop → aspectj),依赖在
pom.xml各自声明。 - 若 X 端 import 与 Pro 不同(如
@XssCleanIgnore路径),同步代码时保留 X 端的正确 import。 - 事务注解、
ApplicationHome、Redis 工具类两端一致。
3. 前端同步(Rro → X)
| 变更类型 | 注意 |
|---|---|
| 页面 | 复制改动后处理 Vue2→Vue3 差异 |
| 公共样式 | static/base.css 两端一致 |
| api.js | 新函数两端一致 |
| 组件 | 同步 props/methods/模板 |
Vue2 → Vue3 常见差异:
this.$set(obj, k, v)→ 直接obj[k] = v(Vue3 响应式)。beforeDestroy→beforeUnmount。:key不能字符串拼接表达式(小程序语义一致)。v-model在自定义组件传递差异(prop 名 / emit)。
4. 同步执行检查清单
- [ ] 后端:Controller / 实体 / Mapper / sql / InstallController 全部落 X
- [ ] 前端:页面 / api.js / base.css 全落 X
- [ ] 语法差异点处理完毕(Vue3、SpringBoot4)
- [ ] 关键链路双端回归(登录→列表→详情→操作→写库)
- [ ] 若加了接口,
docs/api/generate.py重跑生成文档 - [ ] 若加了字段,管理端"刷新数据表"在双后端都可执行
5. 典型事故提醒
- 只改了 Rro 忘记 X → 双端页面结构 diff 拉开,后续同步成本翻倍。
- 后端只改了 Pro 未同步 X → X 环境接口 404 或字段缺失。
- SQL 只改了主库脚本未同步 X 的
*.sql→ X 新环境建表缺列。 - 同步时整文件覆盖但 X 原有自定义 import 被冲掉 → 编译失败。建议逐块 diff 合并,不是全量覆盖。