领先一步
VMware 提供培训和认证,助力您加速发展。
了解更多我很高兴宣布 Spring Batch 4.3.0-RC1 现已可从我们的 里程碑仓库获取。
此版本包含许多新功能,您可以在 发布说明 中找到它们,但以下是主要亮点:
Spring Framework 已经做了很多工作来支持在 GraalVM 上运行某些类型的 Spring 应用。在此版本中,我们在 Spring Batch 中也进行了更改,以确保 Batch 应用在 GraalVM 上正确运行。
该支持目前仍处于实验阶段,因此我们鼓励您试用此版本并分享您的反馈。
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
从关系型数据库进行数据映射。
JpaCursorItemReader
实现JPA 2.2 添加了将结果作为游标(cursor)流式传输(stream)的能力,而不仅仅是分页。在此版本中,我们引入了一个新的 JPA item reader,它利用此特性以基于游标的方式流式传输结果,类似于 JdbcCursorItemReader
和 HibernateCursorItemReader
。
此版本将 Spring 项目依赖项升级到以下版本:
您可以将 Spring Batch v4.3.0-RC1 与 Spring Boot 2.4.0-M3 一起使用。
正如我们在今年早些时候宣布的,4.3 版本将是 4.x 系列的最后一个功能版本。在此版本中,我们借此机会废弃了一些 API,以便在下一个主要版本(版本 5)中移除它们。
此版本中最显著的更改是废弃了基于 Map 的 JobRepository
和 JobExplorer
实现。您可以在 issue #3780 中找到有关此决策背后动机的更多详细信息。
我要感谢所有促成此版本发布的贡献者!期待您在 Twitter、StackOverflow 和 Github 上就此里程碑版本提供反馈。