Spring Batch 4.3.0-RC1 现已可用!

发布 | Mahmoud Ben Hassine | 2020年9月17日 | ...

我很高兴宣布 Spring Batch 4.3.0-RC1 现已可从我们的 里程碑仓库获取。

有哪些新特性?

此版本包含许多新功能,您可以在 发布说明 中找到它们,但以下是主要亮点:

1. GraalVM 支持

Spring Framework 已经做了很多工作来支持在 GraalVM 上运行某些类型的 Spring 应用。在此版本中,我们在 Spring Batch 中也进行了更改,以确保 Batch 应用在 GraalVM 上正确运行。

该支持目前仍处于实验阶段,因此我们鼓励您试用此版本并分享您的反馈。

2. Java Records 支持

Records 已在 Java 14 中引入,并在几天前发布的 Java 15 中进行了审阅。在此版本中,我们增加了对在面向块(chunk-oriented)的步骤中使用 Java records 作为 item 的支持。以下示例展示了如何使用 records 从平面文件(flat file)读取数据。请考虑以下 persons.csv 文件和 Person record

id,name
1,William Shakespeare
2,Anne Hathaway
public record Person(int id, String name) { }

以下 FlatFileItemReader bean 定义支持将数据读取到 record items 中

@Bean
public FlatFileItemReader<Person> itemReader() {
	return new FlatFileItemReaderBuilder<Person>()
			.name("personReader")
			.resource(new FileSystemResource("persons.csv"))
			.delimited()
			.names("id", "name")
			.fieldSetMapper(new RecordFieldSetMapper<>(Person.class))
			.build();
}

此示例中的关键组件是新增的 RecordFieldSetMapper,它支持从平面文件对 records 进行数据映射。您可以使用 Spring Framework 中的 DataClassRowMapper 从关系型数据库进行数据映射。

3. 新的 JpaCursorItemReader 实现

JPA 2.2 添加了将结果作为游标(cursor)流式传输(stream)的能力,而不仅仅是分页。在此版本中,我们引入了一个新的 JPA item reader,它利用此特性以基于游标的方式流式传输结果,类似于 JdbcCursorItemReaderHibernateCursorItemReader

依赖升级

此版本将 Spring 项目依赖项升级到以下版本:

  • Spring Framework 5.3.0-RC1
  • Spring Data 2020.0.0-RC1
  • Spring Integration 5.4.0-M3
  • Spring AMQP 2.3.0-M3
  • Spring for Apache Kafka 2.6.1

您可以将 Spring Batch v4.3.0-RC1 与 Spring Boot 2.4.0-M3 一起使用。

API 废弃

正如我们在今年早些时候宣布的,4.3 版本将是 4.x 系列的最后一个功能版本。在此版本中,我们借此机会废弃了一些 API,以便在下一个主要版本(版本 5)中移除它们。

此版本中最显著的更改是废弃了基于 Map 的 JobRepositoryJobExplorer 实现。您可以在 issue #3780 中找到有关此决策背后动机的更多详细信息。

反馈与贡献

我要感谢所有促成此版本发布的贡献者!期待您在 TwitterStackOverflowGithub 上就此里程碑版本提供反馈。

Spring Batch 主页 | GitHub 上的源码 | 参考文档

订阅 Spring 新闻通讯

订阅 Spring 新闻通讯,保持联系

订阅

领先一步

VMware 提供培训和认证,助力您加速发展。

了解更多

获取支持

Tanzu Spring 通过一项简单的订阅,为 OpenJDK™、Spring 和 Apache Tomcat® 提供支持和二进制文件。

了解更多

即将举行的活动

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

查看全部