Spring Batch 5.0.0-M4现已上市

215 阅读2分钟

我代表团队和所有做出贡献的人,很高兴地宣布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 ,以便根据项目类型配置RecordFieldExtractorBeanWrapperFieldExtractor

错误修复

有些错误在不引入破坏性变化的情况下是无法修复的。我们利用这个重要版本的机会来修复这些错误。在这个里程碑中,我们修复了以下主要错误。

  • 无法读取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,我们期待着您在GithubTwitterStackOverflow上的反馈。


Spring Batch主页|Github上的来源|参考文献