Ohhnews

分类导航

$ cd ..
Spring Blog原文

Spring Modulith 2.2 RC1 及多个维护版本发布

#spring modulith#版本发布#事件发布#模块依赖#测试改进

代表社区,我很高兴地宣布 Spring Modulith 2.2 RC1、2.1.2、2.0.9 和 1.4.14 现已可用。这些缺陷修复版本主要包含常规的依赖升级,以及在适用情况下回移的多项事件发布注册表修复。该候选版本完善了 2.2 的功能集,为正式版(GA)铺平道路。

自 2.2 M1 以来,一些用户可见的改进包括:

  • 事件完成操作现在默认在监听器事务内执行 —— 将事件发布标记为已完成的操作现在会加入事件监听器的事务,因此完成操作与监听器的业务变更会一起成功或失败。GH-1961
  • 可区分失败与已放弃的发布记录 —— 事件发布现在可以进入已放弃状态,从而可以区分不会再重试的发布记录与仅仅失败的发布记录。GH-1764
  • 对模块依赖拥有更多控制 —— 现在可以通过 module :: ** 在模块暴露的所有内容上声明允许的依赖,包括其基础包(GH-1924)。NamedInterface 实例现在可以通过编程方式为类型注册,而不仅限于包(GH-1839)。共享模块不再将自身列为允许的目标(GH-1927)。
  • 测试改进 —— EventResult 新增 notToArrive(),用于断言某个事件不会到达(GH-1357)。在 Spring Boot 4.2 下,@ApplicationModuleTest 现在可在 @Nested 测试类上正确解析(GH-1890)。
  • 事件发布注册表修复 —— 已完成的发布记录不再会被认领用于重新提交,也不会再次被标记为失败(GH-1925)。JDBC 和 JPA 仓库现在会遵守重新提交的最短时限(GH-1908)。每种状态的零超时不再被视为立即过期(GH-1917)。通过注册表触发器注解排除的事件不再导致序列化失败(GH-1903)。
  • MongoDB 与 Namastack Outbox —— MongoDB 仓库支持状态查询,并支持通过陈旧性监控器将发布记录标记为失败(GH-1855),归档时不再使用 $merge(GH-1412)。Namastack 集成会存储原始领域事件,并基于该事件评估消息代理路由(GH-1895、GH-1896)。
  • Moments —— 现在支持小时和秒级粒度。GH-1688
  • 平台与依赖升级 —— 包括基于 Spring Boot 4.2 和 Micrometer Tracing 1.8、ArchUnit 1.5.1、JobRunr 9.0.1 以及 Namastack Outbox 1.10.1 的构建。

可在 2.2 RC1、2.1.2、2.0.9 和 1.4.14 的完整变更日志中了解有关这些版本的更多详细信息。请注意,1.4.14 是 1.x 系列的最后一个版本。仍在使用 1.x 的用户建议升级到 2.x。