Spring Batch 5.2.0-M1 发布了!

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

我代表团队以及所有贡献者高兴地宣布,Spring Batch 5.2 的第一个里程碑版本现已从我们的里程碑仓库中发布。这篇博客文章将带您了解 Spring Batch 5.2 中的主要变化。

  • 依赖升级
  • JPA Item Reader 支持查询提示
  • JDBC Item Reader 支持数据类
  • 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 Item Reader 及其各自的构建器已更新,以在定义要使用的 JPA 查询时接受查询提示。

JDBC Item Reader 支持数据类

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

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

RecursiveCollectionLineAggregator 中可配置的行分隔符

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

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

作业注册改进

在 5.1 版本中,批处理基础设施 bean 的默认配置已更新,通过在应用程序上下文中定义 JobRegistryBeanPostProcessor bean 来自动填充作业注册表。最近 Spring Framework 更新了 BeanPostProcessorChecker 中的日志级别后,典型的 Spring Batch 应用程序中记录了几个与 JobRegistryBeanPostProcessor 相关的警告。这些警告是由于 JobRegistryBeanPostProcessor bean 对 JobRegistry bean 存在依赖,这是不推荐的,可能会导致 bean 生命周期问题。

这些问题在此版本中已得到解决,通过将填充 JobRegistry 的机制从使用 BeanPostProcessor 更改为使用 SmartInitializingSingletonJobRegistryBeanPostProcessor 现已弃用,取而代之的是新添加的 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 社区的所有近期活动。

查看全部