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项读取器中的查询提示支持

在5.1版本之前,JPA游标和分页项读取器不支持查询提示(例如获取大小、超时等)。用户需要提供自定义查询提供程序才能指定自定义提示。

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

JDBC项读取器中的数据类支持

此版本在JDBC游标和分页项读取器的构建器中引入了一种新方法,允许用户在项目类型为数据类(Java记录或Kotlin数据类)时指定DataClassRowMapper

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

RecursiveCollectionLineAggregator 中的可配置行分隔符

到目前为止,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 IssuesGithub DiscussionsTwitterStackOverflow上提供反馈。

Spring Batch 首页|Github 源代码|参考文档

获取Spring新闻

关注Spring新闻

订阅

领先一步

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

了解更多

获得支持

Tanzu Spring在一个简单的订阅中提供对OpenJDK™、Spring和Apache Tomcat®的支持和二进制文件。

了解更多

即将举行的活动

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

查看全部