我代表团队和所有做出贡献的人,很高兴地宣布Spring Batch 5.0.0-M4现在可以从我们的里程碑仓库中获得。
这个第四个里程碑为Java记录支持引入了一些改进。它还带来了一些增强功能、错误修复、依赖性升级和文档更新。关于所有变化的更多细节,请看发行说明。
Java记录支持的改进
对Java记录作为面向块的步骤中的项目的支持最初是在v4.3中引入的,但这种支持是有限的,原因是v4以Java 8为基线。在Java 8中,记录甚至还没有进入预览阶段。最初的支持是基于反射技巧来创建Java记录并将数据填入其中,而不需要访问java.lang.Record API,该API在Java 16中被最终确定。
现在v5以Java 17为基线,我们通过在框架的不同部分利用java.lang.Record API,改进了Spring Batch中的记录支持。例如,FlatFileItemReaderBuilder 现在能够检测项目类型是记录还是普通类,并相应地配置相应的FieldSetMapper 实现(RecordFieldSetMapper 用于记录,BeanWrapperFieldSetMapper 用于普通类)。这里的目标是使所需的FieldSetMapper 类型的配置对用户透明。同样的功能也已经在FlatFileItemWriterBuilder ,以便根据项目类型配置RecordFieldExtractor 或BeanWrapperFieldExtractor 。
错误修复
有些错误在不引入破坏性变化的情况下是无法修复的。我们利用这个重要版本的机会来修复这些错误。在这个里程碑中,我们修复了以下主要错误。
- 无法读取classpath中没有
spring-tx的XML数据#4132 - 在使用链式
StepBuilder时丢失事务属性#3686 ItemReadListener增加一个 后不能正确注册StepExecutionListener#773- 不能子类化
final class com.sun.proxy.$Proxy202#793 StepBuilderFactory只支持听众注解,不支持听众接口#1098
这并不是一个详尽的列表。请参阅发行说明,了解在这个里程碑中修复的完整错误列表。
依赖关系的升级
主要的依赖关系已经升级到以下版本。
- 升级到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-M3
- 升级到Hibernate 6.1.1.Final
反馈信息
我想感谢所有在这个版本中发挥作用的贡献者随着我们继续开发Spring Batch 5,我们期待着您在Github、Twitter和StackOverflow上的反馈。