更新:2026-09-05 16:11

双端同步流程(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 响应式)。
  • beforeDestroybeforeUnmount
  • :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 合并,不是全量覆盖。