Spring Batch 5.0.0-M4 已发布,新版本在支持 Java Records 方面进行了部分改进,以及其他功能增强、错误修复、依赖升级和文档更新。
Spring Batch 是一个轻量级且功能全面的批处理框架,使用 Spring 和 Java 编写离线和批处理应用程序,旨在为开发对企业系统日常运行至关重要的批处理应用程序提供支持。
改进对 Java Records 的支持
v4.3 是最早支持 Java Records 的版本,不过这种支持能力有限,原因是 v4 系列基于 Java 8 开发。在 Java 8 中,Records 尚未进入预览阶段,最初的支持是基于反射技术来创建 Java Records 并使用数据进行填充,而无需访问java.lang.Record
,该 API 最终在 Java 16 才确定。
现在 v5 基于 Java 17 开发,开发者通过在框架的不同部分利用java.lang.Record
API 来改进 Spring Batch 中的 Records 支持。例如,FlatFileItemReaderBuilder
现在能够检测项目类型是 Records 还是常规类,并相应地配置相应的FieldSetMapper
实现(RecordFieldSetMapper
用于Records,BeanWrapperFieldSetMapper
用于常规类)。同样的功能也已经在 FlatFileItemWriterBuilder 中实现,以便根据项目类型配置RecordFieldExtractor
或 BeanWrapperFieldExtractor
。
修复错误
此版本修复了一些重要错误,并会破坏兼容性。
- 如果 classpath 中没有
spring-tx
,则无法读取 XML 数据 #4132 - 使用链式
StepBuilder
时会丢失事务属性 #3686 - 添加
StepExecutionListener
后,无法正确注册ItemReadListener
#773 无法继承final class com.sun.proxy.$Proxy202
#793StepBuilderFactory
仅支持 Listener Annotations,不支持 Listener Interfaces #1098
升级依赖
- Upgrade to Spring Framework 6.0.0-M5
- Upgrade to Spring Data 2022.0.0-M5
- Upgrade to Spring Integration 6.0.0-M4
- Upgrade to Spring AMQP 3.0.0-M3
- Upgrade to Spring for Apache Kafka 3.0.0-M5
- Upgrade to Micrometer 1.10.0-M3
- Upgrade to Hibernate 6.1.1.Final
Release Notes | 发布公告