取得先机
VMware 提供培训和认证,助力您加速前行。
了解更多我代表团队以及所有贡献者高兴地宣布,Spring Batch 5.2 的第一个里程碑版本现已从我们的里程碑仓库中发布。这篇博客文章将带您了解 Spring Batch 5.2 中的主要变化。
RecursiveCollectionLineAggregator
中可配置的行分隔符有关完整的更改列表,请查看发布说明。
在此版本中,Spring 依赖项已升级到以下版本
直到 5.1 版本,JPA 游标和分页 Item Reader 都不支持查询提示(例如 fetch size、timeout 等)。用户需要提供自定义查询提供程序来指定自定义提示。
在此版本中,JPA Item Reader 及其各自的构建器已更新,以在定义要使用的 JPA 查询时接受查询提示。
此版本在 JDBC 游标和分页 Item Reader 的构建器中引入了一个新方法,允许用户在 Item 类型为数据类(Java record 或 Kotlin 数据类)时指定 DataClassRowMapper
。
名为 dataRowMapper(TargetType.class)
的新方法类似于 beanRowMapper(TargetType.class)
,旨在使常规类 (Java beans) 和数据类 (Java records) 之间的行映射器配置保持一致。
到目前为止,RecursiveCollectionLineAggregator
中的行分隔符属性一直设置为系统的行分隔符值。虽然可以通过系统属性更改此值,但这种配置方式与批处理构件的其他属性不一致。
此版本在 RecursiveCollectionLineAggregator
中引入了一个新的 setter 方法,允许用户配置自定义的行分隔符值,而无需使用系统属性。
在 5.1 版本中,批处理基础设施 bean 的默认配置已更新,通过在应用程序上下文中定义 JobRegistryBeanPostProcessor
bean 来自动填充作业注册表。最近 Spring Framework 更新了 BeanPostProcessorChecker
中的日志级别后,典型的 Spring Batch 应用程序中记录了几个与 JobRegistryBeanPostProcessor
相关的警告。这些警告是由于 JobRegistryBeanPostProcessor
bean 对 JobRegistry
bean 存在依赖,这是不推荐的,可能会导致 bean 生命周期问题。
这些问题在此版本中已得到解决,通过将填充 JobRegistry
的机制从使用 BeanPostProcessor
更改为使用 SmartInitializingSingleton
。JobRegistryBeanPostProcessor
现已弃用,取而代之的是新添加的 JobRegistrySmartInitializingSingleton
。
我要感谢所有为本次发布做出贡献的人们!Spring Batch 5.2.0-M1 与 Spring Boot 3.4.0-M3 一起发布。
我们期待您在 Github Issues、Github Discussions、Twitter 和 StackOverflow 上提供反馈。