Spring Batch 5.2.0-M1 已发布!

版本发布 | Mahmoud Ben Hassine | 2024 年 9 月 18 日 | ...

我谨代表团队和所有做出贡献的人,很高兴地宣布 Spring Batch 5.2 的第一个里程碑版本现已在我们的里程碑仓库中提供。这篇博文将带您了解 Spring Batch 5.2 的主要变更。

  • 依赖升级
  • JPA 项目读取器中的查询提示支持
  • JDBC 项目读取器中的数据类支持
  • RecursiveCollectionLineAggregator 中可配置的行分隔符
  • 作业注册改进

有关完整的更改列表,请查看 发布说明

依赖升级

在此版本中,Spring 依赖项已升级到以下版本:

  • Spring Framework: 6.2.0-RC1
  • Spring Retry: 2.0.9
  • Micrometer: 1.14.0-M3
  • Spring Integration: 6.4.0-M3
  • Spring AMQP: 3.2.0-M3
  • Spring Kafka: 3.3.0-M3
  • Spring Data: 3.4.0-M1
  • Spring Ldap: 3.2.6

JPA Item Reader 的查询提示支持

在 5.1 版本之前,JPA 游标和分页 Item Reader 不支持查询提示(例如 fetch size、timeout 等)。用户需要提供自定义查询提供者才能指定自定义提示。

在此版本中,JPA Reader 及其相应的构建器已更新,在定义要使用的 JPA 查询时接受查询提示。

JDBC Item Reader 的数据类支持

此版本在 JDBC 游标和分页 Item Reader 的构建器中引入了一个新方法,该方法允许用户在项目类型是数据类(Java record 或 Kotlin data class)时指定 DataClassRowMapper

名为 dataRowMapper(TargetType.class) 的新方法类似于 beanRowMapper(TargetType.class),旨在使普通类(Java bean)和数据类(Java record)之间的行映射器配置保持一致。

RecursiveCollectionLineAggregator 中可配置的行分隔符

直到现在,RecursiveCollectionLineAggregator 中的行分隔符属性被设置为系统的行分隔符值。虽然可以通过系统属性更改此值,但这种配置样式与其他批处理工件属性不一致。

此版本在 RecursiveCollectionLineAggregator 中引入了一个新的 setter,允许用户配置自定义行分隔符值,而无需使用系统属性。

Job 注册改进

在 5.1 版本中,批处理基础结构 bean 的默认配置通过在应用程序上下文中定义 JobRegistryBeanPostProcessor bean 来自动填充 job 注册表。在 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 IssuesGithub DiscussionsTwitterStackOverflow 上提供反馈。

Spring Batch 主页|Github 上的源代码|参考文档

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

VMware 提供培训和认证,助您加速进步。

了解更多

获得支持

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件,只需一份简单的订阅。

了解更多

即将举行的活动

查看 Spring 社区所有即将举行的活动。

查看所有