Spring Batch 5.0 提供 JDK 17 基线和对原生 Java 的支持
VMware发布了Spring Batch 5.0。基于 Java 17 和最新的 Spring Framework 6.0,Spring Batch 现在支持 GraalVM 本机图像、新的 Observation API、Java Records 以及由 50 多个贡献者提供的一长串增强和修复。
Spring Batch 5 依赖于 Spring Framework 6、Spring Integration 6、Spring Data 3、Spring AMQP 3 和 Micrometer 1.10。此外,对于 Jakarta EE API 的所有使用,import 语句需要从javax.*
tojakarta.*
命名空间迁移,因为此版本标志着向 Jakarta EE 9 的迁移。Spring Batch 现在也将 Hibernate 6 用于游标和分页项读取器。
Spring Batch 5 引入了一个新类 ,DefaultBatchConfiguration
作为@EnableBatchProcessing
注解的替代品。它为所有基础结构 bean 提供默认配置,用户可以自定义这些配置。用户现在可以指定一个事务管理器,并可以使用该JobExplorer
界面自定义其事务属性。最新版本还提供了增强功能,以更好地利用框架中的 Record API,因为对 Record API 的支持是在 Spring Batch 4 中首次引入的。Spring Batch 还扩展了对 SAP HANA 的支持和对 MariaDB 的全面支持。
@EnableBatchProcessing
注释不再在应用程序上下文中公开事务管理器 bean。这对于用户定义的事务管理器来说是个好消息,因为它避免了以前版本中的无条件行为。用户必须在任何 tasklet 步骤定义上手动配置事务管理器,以避免XML 和 Java 配置样式之间的不一致。该@EnableBatchProcessing
批注还配置了一个基于 JDBC 的JobRepository
接口。VMware 建议使用嵌入式数据库来处理内存中的作业存储库。
Micrometer升级到 1.10 版本,允许用户获取 Batch tracing 和 Batch metrics。Spring Batch 现在还为每个作业和步骤创建一个跨度。可以在Zipkin等分布式跟踪工具中查看数据。
另一个令人耳目一新的变化是使用JobParameter
类处理作业参数。这样,用户不再像在版本 4 中那样仅限于 long、double、string 或 date 类型。此更改对参数在数据库中的持久性有影响。
Spring Batch 5 还移除了对 SQLFire、JSR-352(Java 平台的批处理应用程序)和 GemFire 的支持。