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 中进行了更改,以便也能在 GraalVM 上正确运行 Batch 应用程序。

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

2. Java Records 支持

Java 14 中引入了 Records,并在几天前发布的 Java 15 中进行了审查。在此版本中,我们添加了对在面向块的步骤中使用 Java Records 作为项的支持。以下示例显示了如何使用 Records 从平面文件中读取数据。

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

以下 FlatFileItemReader bean 定义允许将数据读取到记录项中。

@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,用于支持从平面文件读取记录的数据映射。您可以使用 Spring Framework 中的 DataClassRowMapper 从关系数据库进行数据映射。

3. 新的 JpaCursorItemReader 实现

JPA 2.2 添加了以游标方式流式传输结果的能力,而不仅仅是分页。在此版本中,我们引入了一个新的 JPA 项目读取器,它使用此功能以类似于 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 Boot 2.4.0-M3 使用 Spring Batch v4.3.0-RC1。

API 弃用

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

此版本中最显著的变化是弃用了基于 Map 的 JobRepositoryJobExplorer 实现。您可以在问题 #3780 中找到有关此决定的动机的更多详细信息。

反馈和贡献

我要感谢所有使此版本成为可能的贡献者!我们期待您对 TwitterStackOverflowGithub 上此里程碑的反馈。

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

获取 Spring 新闻通讯

与 Spring 新闻通讯保持联系

订阅

领先一步

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

了解更多

获取支持

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

了解更多

即将举行的活动

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

查看全部