Spring Batch 5.0 提供 JDK 17 基線(xiàn)和對(duì)原生 Java 的支持

VMware發(fā)布了Spring Batch 5.0。基于 Java 17 和最新的 Spring Framework 6.0,Spring Batch 現(xiàn)在支持 GraalVM 本機(jī)圖像、新的 Observation API、Java Records 以及由 50 多個(gè)貢獻(xiàn)者提供的一長(zhǎng)串增強(qiáng)和修復(fù)。
Spring Batch 5 依賴(lài)于 Spring Framework 6、Spring Integration 6、Spring Data 3、Spring AMQP 3 和 Micrometer 1.10。此外,對(duì)于 Jakarta EE API 的所有使用,import 語(yǔ)句需要從javax.*tojakarta.*命名空間遷移,因?yàn)榇税姹緲?biāo)志著向 Jakarta EE 9 的遷移。Spring Batch 現(xiàn)在也將 Hibernate 6 用于游標(biāo)和分頁(yè)項(xiàng)讀取器。
Spring Batch 5 引入了一個(gè)新類(lèi) ,DefaultBatchConfiguration作為@EnableBatchProcessing注解的替代品。它為所有基礎(chǔ)結(jié)構(gòu) bean 提供默認(rèn)配置,用戶(hù)可以自定義這些配置。用戶(hù)現(xiàn)在可以指定一個(gè)事務(wù)管理器,并可以使用該JobExplorer界面自定義其事務(wù)屬性。最新版本還提供了增強(qiáng)功能,以更好地利用框架中的 Record API,因?yàn)閷?duì) Record API 的支持是在 Spring Batch 4 中首次引入的。Spring Batch 還擴(kuò)展了對(duì) SAP HANA 的支持和對(duì) MariaDB 的全面支持。
@EnableBatchProcessing注釋不再在應(yīng)用程序上下文中公開(kāi)事務(wù)管理器 bean。這對(duì)于用戶(hù)定義的事務(wù)管理器來(lái)說(shuō)是個(gè)好消息,因?yàn)樗苊饬艘郧鞍姹局械臒o(wú)條件行為。用戶(hù)必須在任何 tasklet 步驟定義上手動(dòng)配置事務(wù)管理器,以避免XML 和 Java 配置樣式之間的不一致。該@EnableBatchProcessing批注還配置了一個(gè)基于 JDBC 的JobRepository接口。VMware 建議使用嵌入式數(shù)據(jù)庫(kù)來(lái)處理內(nèi)存中的作業(yè)存儲(chǔ)庫(kù)。
Micrometer升級(jí)到 1.10 版本,允許用戶(hù)獲取 Batch tracing 和 Batch metrics。Spring Batch 現(xiàn)在還為每個(gè)作業(yè)和步驟創(chuàng)建一個(gè)跨度。可以在Zipkin等分布式跟蹤工具中查看數(shù)據(jù)。
另一個(gè)令人耳目一新的變化是使用JobParameter類(lèi)處理作業(yè)參數(shù)。這樣,用戶(hù)不再像在版本 4 中那樣僅限于 long、double、string 或 date 類(lèi)型。此更改對(duì)參數(shù)在數(shù)據(jù)庫(kù)中的持久性有影響。
Spring Batch 5 還移除了對(duì) SQLFire、JSR-352(Java 平臺(tái)的批處理應(yīng)用程序)和 GemFire 的支持。
