VMware发布Spring Batch 5.0。基于 Java 17 和最新的 Spring Framework 6.0,Spring Batch 现在支持 GraalVM 原生镜像、新的 Observation API、Java Record 以及由 50 多位贡献者实现的一系列功能增强和缺陷修复。
Spring Batch 5 依赖 Spring Framework 6、Spring Integration 6、Spring Data 3、Spring AMQP 3 和 Micrometer 1.10。此外,对 Jakarta EE API 的所有导入语句需要从javax.*
迁移至jakarta.*
命名空间,这是因为该版本已经迁移至 Jakarta EE 9。Spring Batch 现在使用 Hibernate 6 来读取游标和分页条目。
Spring Batch 5 引入了一个新的类,DefaultBatchConfiguration,作为@EnableBatchProcessing注解的替代者。它会为所有基础设施提供默认配置,用户可以据此进行自定义。用户可以声明事务管理器并使用JobExplorer接口自定义其事务属性。最新版本还提供了增强功能,以更好地利用框架中的 Record API,对 Record API 的支持是在 Spring Batch 4 中首次引入的。Spring Batch 还扩展了对 SAP HANA 的支持和对 MariaDB 的完整支持。
@EnableBatchProcessing
注解不会在应用上下文中暴露事务管理器。这对用户定义的事务管理器来说是个好消息,因为能够避免以前版本无法控制的行为。用户必须在每个 tasklet step 定义中手动配置事务管理器,以避免 XML 和 Java 配置风格的不一致性。@EnableBatchProcessing
注解还配置了一个基于 JDBC 的JobRepository接口。VMware 建议使用嵌入式数据库来与内存中的 job 仓库协作。
Micrometer升级到了 1.10 版本,允许用户获得 Batch 追踪和 Batch 度量指标。Spring Batch 现在还为每个 job 和 step 创建一个跨度(span)。这些数据可以在Zipkin等分布式追踪工具中查看。
另一个值得关注的变化是使用JobParameter类来处理 job 参数。这样,用户不用像 Spring Batch 4 那样局限于 long、double、string 或 date 类型。这一变化对参数在数据库中的持久化会有影响。
Spring Batch 5 还删除了对 SQLFire、JSR-352(Java 平台的批处理应用)和 GemFire 的支持。
原文链接:
Spring Batch 5.0 Delivers JDK 17 Baseline and Support for Native Java
评论