今天我們很高興宣布 Spring Batch 3.0 的候選版本。 此版本的 Spring Batch 提供了我們承諾提供的 JSR-352 支援,以及我們現有的 Spring Batch 社群的許多新功能。
Release Candidate 1 中的功能
此版本的主要功能包括
- JSR-352 支援
- 將 Spring Batch Integration 推廣到 Spring Batch
- 依賴項的完全翻新
- 支援 SQLite
- Job scope
- 從 Maven 切換到 Gradle 以建置 Spring Batch
JSR-352 支援
JSR-352 是批次 JSR,並於去年底以 1.0 發布。 由於 Spring Batch 是此 JSR 大部分程式設計模型的靈感來源,因此 Spring 致力於支援它。 透過 3.0 版本,Spring Batch 符合 JSR-352 標準,通過所有 TCK 測試。 它提供了經過最多生產測試的 JSR 實現。
對於 Spring Batch 的使用者來說,建立符合此 JSR 標準的批次作業應該會感到非常熟悉。 XML 配置和介面與現有的 Spring Batch 非常相似。 以下是 JSR-352 批次作業的範例
```xml
```
Spring Batch 的 JSR-352 實作旨在為現有的 Spring Batch 使用者提供最大的靈活性。 我們允許開發人員將現有的 ItemReader、ItemProcessor、ItemWriter 等與 JSR-352 提供的配置工具結合使用。 這為開發人員提供了完整的、經過生產測試的元件庫,用於建置強大的批次作業。
若要閱讀有關 Spring Batch 的 JSR-352 實現的更多資訊,請造訪我們的參考文檔:https://spring-docs.dev.org.tw/spring-batch/trunk/reference/html/jsr-352.html
將 Spring Batch Integration 推廣到 Spring Batch
何時該使用 Spring Batch 或 Spring Integration 之間的分界線通常很模糊。 在許多使用情境中,其中一個會比另一個更有效。 然而,在許多使用情境中,它們也可以一起使用,以構建穩健且可擴展的資料處理系統。 Spring Batch Integration 提供了一組元件,可將 Spring Batch 和 Spring Integration 一起使用。 Spring Batch Integration 提供的使用情境包括:
- 非同步項目處理
- 遠端分塊 (Remote chunking)
- 透過訊息啟動批次作業
- 遠端分割 (Remote partitioning)
這些功能使批次處理超越了 JSR-352 所提供的功能,並允許使用者開發可以擴展到單個 JVM 之外的批次應用程式。 您可以在此處的參考文件中閱讀有關 Spring Batch Integration 及其元件的更多資訊:https://spring-docs.dev.org.tw/spring-batch/trunk/reference/html/springBatchIntegration.html。
依賴項的完全翻新
我們藉此機會審查了 Spring Batch 的所有第三方依賴項,並將它們更新到最新版本。 作為此項工作的一部分,我們還使它們與 Spring 系列中的其他專案保持一致,以便在將 Spring Batch 新增到現有應用程式(或將其他專案新增到 Spring Batch 專案)時獲得最輕鬆的體驗。
支援 SQLite
雖然 HSQLDB 對於許多測試情境很有用,但像 SQLite 這樣的基於檔案的系統也可能非常有用。 在 3.0 版本中,我們新增了 SQLite 的作業儲存庫 DDL,以解決這些使用情境。
Job scope
Spring Batch 的 step scope 允許開發人員延遲物件的建立,直到執行特定步驟為止。 此功能還公開了在批次構件中提供屬性延遲綁定的能力。 在此 3.0 版本中,Spring Batch 引入了 Job scope。 此 scope 的工作方式與 step scope 相同(透過代理延遲物件的建立),但它會延遲建立,直到執行作業而不是步驟。 這在於上下文中定義多個作業時,或者在步驟級別元件中發生大量初始化程序時非常有用。 您可以在此處的參考手冊中閱讀有關 job scope 的更多資訊:https://spring-docs.dev.org.tw/spring-batch/trunk/reference/html/configureStep.html#job-scope。
從 Maven 遷移到 Gradle
最後,此版本是 Spring Batch 首次從 Maven 遷移到 Gradle 作為內部建置系統。 此變更對使用 jar 檔案的開發人員沒有任何影響。 Maven 使用者仍然可以透過 Maven Central 取得它們。
結論
3.0.0.RC1 代表 Spring Batch 下一個主要里程碑的完成。 它將 JSR-352 提供的標準帶給我們的社群,並為進階使用者提供了大量額外功能。 我們期待您在論壇、社交媒體和 SpringOne2GX 現場活動中提供回饋!