v2.0.0 · Spring Boot 4.1 平台升级
v2.0.0 发布于 2026-11-07同一套功能,换到 Spring Boot 4 —— 全量迁移到 Spring Boot 4.1.2 / Spring Framework 7 / Hibernate 7 / Tomcat 11 / Jackson 3,功能范围与 v1.14.0 一致;对外格式、配置包、密文与元数据库都保持兼容,连接、同步项目、ETL 与专属迁移配置不需要迁移。
升级内容
- Spring Boot 4.1.2:Spring Framework 7.0、Spring Security 7.1、Hibernate ORM 7.4、Tomcat 11、Jackson 3、Lettuce 7、MongoDB 同步驱动 5.8;
javax.*全部迁移到jakarta.*,仍要求 Java 17+ - 对外格式不变:Jackson 3 恢复 1.x 的 epoch 时间戳输出,配置包
meta.exportedAt仍为 ISO-8601;Hibernate 7 的Instant固定映射为TIMESTAMP;Spring Security 7 登录后保存的 URL 附带?continue,跳转与权限判定不变;存储密文与旧Encryptors.delux双向互读,已加密字段无需重新录入 - 内嵌 H2 固定为 2.1.214:1.x 写下的
./data/jync.mv.db可原地升级(2.2+ 会报「Unsupported database file version」);外部 MySQL / PostgreSQL 元数据库不受影响 - 依赖瘦身:移除运行期不会加载的构件,Web 依赖改用
spring-boot-starter-webmvc;2.0.0 最终约 106.6 MB(v1.14.0 为 88.9 MB)
修复与优化
- Redis 缓存维护:重建缓存与「删除前缀键」移到缓存投影卡片旁,只对 Redis 目标的管理员显示;重建全程持有同步租约,忙时返回可翻译提示,不再与运行中的同步任务互踩,也不会误删相邻前缀的键
- CDC 与配置包:CDC 重建在「位点已重置但消费者启动失败」时返回 503 并补写变更记录与审计;配置包导入拒绝缺少 Redis 目标的 REDIS 项目,JDBC 项目缺目标库改为导入成功并警告,同时清掉跨类型的陈旧目标 id
- 专属控件不再串到通用页面:轮询专属的游标设置只在管理员且非 CDC 时出现;重置进度在 CDC 项目隐藏;Redis 项目不再渲染行数核对、目标预览、内容校验与第二套重建入口;ETL 的 MongoDB 续跑提示只对原生 MongoDB 源显示
- 后端补齐与页面一致的守卫:Redis 项目的存储策略仍是轮询时,启动与立即同步被拒;被启用任务引用的 Redis 目标禁止编辑并提示任务名;保存 Redis 项目配置不再清空页面未渲染的选项、调度与性能字段
- 配置正确性:Oracle 挖掘账号与口令只对「Oracle 源库」保存,连接改用其他类型后自动清空;Redis key 前缀留空自动补
jync:<id>:;项目运行中锁定端点后由隐藏字段原样提交已保存拓扑 - 性能:Prometheus 抓取只查询项目 / 连接的 id 与名称,迁移首页只取计数,不再为两个标签字段加载带
@Lob的整行实体 - 平台适配:
xdb与ojdbc8/orai18n统一到 23.26.3.0.0;清理 Boot 4 / Jackson 3 / Security 7 / Lettuce 7 的过期 API;设置页「运行时信息」新增 Spring Boot 与内嵌 Tomcat 版本 - 一键升级支持 Gitee 分卷:Gitee 单附件上限 100 MB,本版 jar 超过上限,Gitee 发行版提供
jync.jar.part00/part01;升级器原先只认完整jync.jar,默认选中 Gitee 时会直接报「该版本未提供 jync.jar 下载附件」。现在优先用完整 jar,缺失时按数字序逐卷下载合并,再用 GitHub 同 tag 的完整 jar digest 交叉校验;缺号、重号或任一卷失败都不会动运行中的 jar
兼容性说明
- 升级方式不变:替换
jync.jar重启即可,运行环境仍需 Java 17 或更高版本;容器部署把镜像 tag 更新为jync:2.0.0 - 元数据库自动更新:升级前照常备份
./data、外部元数据库与application.yml;使用外部 MySQL / PostgreSQL 元数据库时建议先在副本上启动一次 - H2 版本边界:内嵌 H2 固定为 2.1.214,不要自行换成 2.2 及以上
*IT集成测试(Oracle / MySQL / PostgreSQL / ClickHouse / MariaDB / Redis / MongoDB 真库)不在mvn test默认范围,需显式运行- Gitee 分卷下载:Gitee 发行版因单附件 100 MB 上限提供
jync.jar.part00/part01,手动下载后需cat jync.jar.part00 jync.jar.part01 > jync.jar合并;GitHub 与 GitCode 提供完整 jar。应用内「检查更新」会自动下载并合并,无需手动处理
测试
- 5338 个测试:5337 通过,0 失败 0 错误;1 个仅限 Linux 的密钥文件权限用例在 macOS 上按环境跳过;
*IT需 Docker 另跑