Spring Batch 5.0.0-M4 现已发布!

版本发布 | Mahmoud Ben Hassine | 2022 年 7 月 20 日 | ...

我谨代表团队以及所有贡献者,高兴地宣布 Spring Batch 5.0.0-M4 现已可通过我们的 milestone repository 获取。

这个第四个里程碑版本引入了多项针对 Java Records 支持的改进。它还包含了一系列增强功能、bug 修复、依赖升级和文档更新。有关所有更改的更多详细信息,请参阅 发布说明

Java Records 支持改进

对 Java 记录(records)作为分块(chunk-oriented)步骤中的项的支持最初是在 v4.3 中引入的,但由于 v4 的基线是 Java 8,因此该支持受到了限制。在 Java 8 中,记录(records)甚至还没有预览。最初的支持是基于反射技巧来创建 Java 记录并填充数据,而无法访问 `java.lang.Record` API,该 API 在 Java 16 中才最终确定。

现在 v5 的基线是 Java 17,我们通过利用框架各部分中的 `java.lang.Record` API 来改进 Spring Batch 中的记录(records)支持。例如,`FlatFileItemReaderBuilder` 现在能够检测项类型是记录(record)还是普通类,并相应地配置相应的 `FieldSetMapper` 实现(记录使用 `RecordFieldSetMapper`,普通类使用 `BeanWrapperFieldSetMapper`)。这里的目标是让用户能够透明地配置所需的 `FieldSetMapper` 类型。同样的功能也已在 `FlatFileItemWriterBuilder` 中实现,以便根据项类型配置 `RecordFieldExtractor` 或 `BeanWrapperFieldExtractor`。

Bug 修复

有些 bug 在不引入破坏性更改的情况下无法修复。我们借此主要版本之机修复了这些 bug。在此里程碑中,以下主要 bug 已被修复:

  • 在类路径中没有 `spring-tx` 的情况下无法读取 XML 数据 #4132
  • 使用链式 `StepBuilder` 时丢失事务属性 #3686
  • 添加 `StepExecutionListener` 后 `ItemReadListener` 未被正确注册 #773
  • 无法子类化 `final class com.sun.proxy.$Proxy202` #793
  • `StepBuilderFactory` 只支持监听器注解,不支持监听器接口 #1098

这不是一个详尽的列表。有关在此里程碑中修复的所有 bug 的完整列表,请参阅发布说明

依赖升级

主要依赖已升级到以下版本:

  • 升级到 Spring Framework 6.0.0-M5
  • 升级到 Spring Data 2022.0.0-M5
  • 升级到 Spring Integration 6.0.0-M4
  • 升级到 Spring AMQP 3.0.0-M3
  • 升级到 Spring for Apache Kafka 3.0.0-M5
  • 升级到 Micrometer 1.10.0-M3
  • 升级到 Hibernate 6.1.1.Final

反馈

感谢所有为此版本做出贡献的开发者!随着我们在 Spring Batch 5 上工作的继续,我们期待您在 GithubTwitterStackOverflow 上的反馈。


Spring Batch 主页|Github 源代码|参考文档

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

VMware 提供培训和认证,助您加速进步。

了解更多

获得支持

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件,只需一份简单的订阅。

了解更多

即将举行的活动

查看 Spring 社区所有即将举行的活动。

查看所有