Spring Batch 5.0.0-M5 现已推出!

发行版 | Mahmoud Ben Hassine | 2022年8月24日 | ...

我很高兴地宣布,Spring Batch 5.0.0-M5 现在可以从我们的 里程碑存储库 获取。此里程碑的主要主题是改进 Spring Batch 中的测试支持。这篇文章将逐步介绍该领域的主要变化以及在此里程碑版本中引入的其他更改。有关完整更改列表,请参阅 发行说明

测试工具配置更新

在 4.3 版本之前,JobLauncherTestUtils 用于自动装配被测作业,目的是简化测试设置。但是,如果测试上下文中定义了多个作业呢?如果根本没有定义任何Job bean 呢?因此,虽然这种自动装配在大多数情况下都很方便,但事实证明它在上述情况下会导致一些问题。在此版本中,根据社区反馈,我们决定删除JobLauncherTestUtils中任何作业的自动装配。

类似地,JobRepositoryTestUtils 用于从应用程序上下文中自动装配DataSource。同样,如果测试上下文中没有定义数据源或定义了多个数据源呢?在此版本中,JobRepositoryTestUtils 已更新为针对JobRepository接口工作,无需处理存储库的任何实现细节(例如数据源)。

如果在测试上下文中手动定义这些实用程序 bean 或通过@SpringBatchTest导入它们,则可以在测试上下文中定义多个此类 bean 时手动设置被测作业或测试数据源。

迁移到 JUnit Jupiter

在此里程碑版本中,Spring Batch 的整个测试套件已迁移到 JUnit 5。虽然这不会直接影响最终用户,但它有助于 Batch 团队以及社区贡献者使用下一代 JUnit 来编写更好的测试。

改进的文档

在此里程碑版本中,文档已更新为使用 Spring Asciidoctor 后端。此后端确保产品组合中的所有项目都遵循相同的文档样式。为了与其他项目保持一致,Spring Batch 的参考文档已在此版本中更新为使用此后端。您可以 此处 查看参考文档的新版本。

弃用和 API 更改

此版本包含许多弃用和 API 更改。

弃用

此里程碑版本引入了以下弃用

  • Hibernate(游标/分页)项读取器和项写入器已被弃用,建议使用基于 JPA 的读取器和写入器。
  • org.springframework.batch.test.AssertFile 实用程序类已被弃用,建议使用现代测试库提供的类似实用程序。

API 更改

在此版本中,我们在ItemWriter接口中引入了一个重大更改

public interface ItemWriter<T> {

-- void write(List<? extends T> items) throws Exception;
++ void write(Chunk<? extends T> items) throws Exception;

}

虽然此更改看起来很小,但我们相信它在更好地封装以及在框架的不同领域和 API 中使用一致的语言方面具有巨大的附加值。ItemWriteListener API 也已更改为使用Chunk API。

由于Chunk API 实现java.lang.Iterable,因此此更改不会影响迭代项目列表的任何客户端代码。此外,此更改不会影响使用 lambda 表达式定义ItemWriter的任何示例,因为项目的类型是推断的。有关已更改 API 的所有详细信息,请参阅 迁移指南

依赖项升级

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

  • 升级到 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-M4
  • 升级到 Hibernate 6.1.2.Final

反馈

我们要感谢所有参与此版本的贡献者!在我们继续 Spring Batch 5 的工作时,我们期待您在 GithubTwitterStackOverflow 上提供反馈。


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

获取 Spring Newsletter

关注 Spring Newsletter

订阅

领先一步

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

了解更多

获取支持

Tanzu Spring在一个简单的订阅中提供对 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件。

了解更多

即将举行的活动

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

查看全部