Spring Batch 3.0 Milestone 3 發布

發布 | Michael Minella | 2014 年 2 月 24 日 | ...

今天我們很高興宣布 Spring Batch 3.0 的最終里程碑版本(下載)。此版本展示了我們對 JSR-352 的支持,目前支持其所有必需的功能。我們還為現有的 Spring Batch 用戶添加了許多新功能。Spring Batch 是一個輕量級、全面的框架,用於開發穩健的批次應用程式。

Milestone 3 中的功能

作為 Spring Batch 3.0.0 版本的最終里程碑,此版本的所有主要功能都已完成。此版本的主要功能包括

  • JSR-352 支援
  • 將 Spring Batch Integration 提升為 Spring Batch
  • 升級以支援 Spring 4 和 Java 8
  • 其他修復和改進

JSR-352 支援

Spring 在我們對此規範的貢獻中投入了大量時間和資源。 我們通過 JCP、JSR-352 與其他行業專家合作,驗證了 Spring Batch 在過去六年來在無數生產環境中實施和經過實戰測試的批次模式,是構建企業中任務關鍵型批次應用程式的最佳方法。

3.0.0.M3 是 Spring Batch 的第一個符合 JSR-352 的版本,它通過了所有 152 個 SE TCK 測試。 Spring Batch 的 JSR-352 實作允許使用者使用熟悉的 Spring Batch 元件,並且仍然符合 Java 標準。 Spring Batch 支援透過基於 JSR-352 的 XML 配置作業、使用 JSR 中定義的注入方法注入針對 javax.batch.* 介面開發的批次工件(Spring 的依賴注入、batch.xml 和內聯配置),以及 JSR-352 中提供的所有可擴展性選項(分割和通過線程進行分區)。

我們實作的目標很簡單:遵循 JSR 的規則,而不違反 Spring Batch 已經定義的規則。 換句話說,實作規範而不影響現有的 Spring Batch 使用者。 我們通過提供兩種實作批次作業的「路徑」來做到這一點。 第一種是傳統的 Spring Batch 方式。 使用 Spring Batch XML 或 Spring 的 Java 配置,針對 Spring Batch 介面進行開發等。這不會作為 3.0 版本的一部分進行更改。 第二個「路徑」是 JSR 路徑。 這種開發方法使用 JSR-352 定義的 XML 模式來配置您的作業,使用 JSR 的 JobOperator 來啟動作業和管理元資料,並且開發人員針對 JSR 的 API 撰寫程式碼。 重要的是要注意,這兩個是截然不同的路徑。 雖然使用 Spring Batch 元件適用於基於 JSR-352 的作業,但它們在這些上下文中的使用將由 JSR 的規則決定。 這方面的一個範例是注入 JSR-352 中定義的上下文(StepContextJobContext)。 如果使用傳統的 Spring Batch 方法配置作業,並通過常規的 Spring Batch 元件啟動作業,則這些上下文將無法用於批次工件。 但是,如果您通過 JSR-352 XML 配置作業並通過 JSR-352 JobOperator 啟動作業,則這些上下文將在適當的地方注入。

重要的是要指出,Spring Batch 不僅僅是實作 JSR-352。 它在許多方面遠遠超出了規範

  • 元件 - Spring Batch 提供了 17 種不同的 ItemReader 實作、16 種 ItemWriter 實作以及許多其他元件,這些元件在生產環境中經過多年的測試。
  • 可擴展性 - JSR-352 僅提供單個 JVM 的縮放選項(通過線程進行分區和分割)。 Spring Batch 提供了多 JVM 可擴展性選項,包括遠端分區和遠端分塊。
  • Spring 依賴注入 - 雖然 JSR-352 提供了一種「依賴注入精簡版」,但它對批次工件的建構方式施加了一些限制(例如,必須使用無參數建構函數)。 Spring Batch 建構在 Spring 之上,並受益於 Spring Framework 功能的強大功能。
  • 基於 Java 的配置 - 雖然 Spring 基於 XML 的配置選項眾所周知,但 Spring,尤其是 Spring Batch,提供了使用 Java 型別安全配置作業的選項。
  • Hadoop/大數據整合 - Spring Batch 是一個基礎工具,用於在 Spring 生態系統中與 Hadoop 和其他大數據儲存互動。 Spring for Apache Hadoop 提供了許多與批次相關的擴展,以使用 Spring Batch 來協調 Hadoop 叢集上的工作。 Spring XD 建構在 Spring Batch 之上,不僅提供執行功能,還提供類似於 Spring Batch Admin 的管理功能,適用於任何環境。

Spring 將繼續參與 JSR-352 的發展,因為它會經過維護修訂,並期待進一步為 JCP 流程做出貢獻。

將 Spring Batch Integration 提升為 Spring Batch

幾年來,Spring Batch Integration 一直是 Spring Batch Admin 的一個鮮為人知的子專案。 然而,鑑於此程式庫提供的功能的強大性及其在企業開發中的實用性,我們決定將其從 Spring Batch Admin 的保護傘下移至 Spring Batch 的保護傘下。 Spring Batch Integration 旨在提供橋接批次和整合處理的有用元件,提供多種啟動和縮放批次應用程式的選項。 功能包括

  • 非同步 ItemProcessor/ItemWriter - 在另一個線程上執行 ItemProcessor 邏輯,將 Future 傳回給 ItemWriterFuture 傳回後,結果會被寫入。
  • JobLaunchingMessageHandler/JobLaunchingMessageGateway - 提供通過經由通道接收的 Spring Messages 啟動作業的能力。
  • 遠端分塊 - 提供通過主/從配置遠端(跨多個 JVM)執行 ItemProcessor 邏輯的能力。
  • 遠端分區 - 提供通過主/從配置遠端(跨多個 JVM)執行完整區塊(讀取/處理/寫入)的能力。

這些元件使 Spring Batch 應用程式能夠在許多企業中無縫整合和擴展。

升級以支援 Spring 4 和 Java 8

作為我們保持依賴項更新的一部分,我們已更新 Spring Batch 及其各種模組以支援 Spring 4。 由於這些更新,Spring 4 將成為 Spring Batch 3.0.0.M3 的最低支援版本。 這不僅帶來了 Spring 4 中發現的眾多新功能,還提供了立即在 Java 8 上運行的能力。

其他修復和改進

除了上述大型新功能外,我們還添加了一些較小的功能並繼續修復錯誤。 我們添加的新功能包括新增 JobScope 和支援 SQLite。

發布候選版本的路線圖

還剩下什麼? 當我們接近我們的發布候選版本時,還有一些小工作要做。 我們仍在仔細研究 Spring Batch 的依賴項,並希望盡可能多地升級。

結論

3.0.0.M3 標誌著 Spring Batch 的一個重要里程碑。 它允許開發人員測試基於 JSR-352 的功能,同時仍然擁有 Spring 和 Spring Batch 的基礎作為依賴。 它還為框架帶來了新功能。 我們期待您在論壇、社群媒體和親自提供的意見和回饋!

獲取 Spring 電子報

隨時關注 Spring 電子報

訂閱

領先一步

VMware 提供培訓和認證,以加速您的進度。

瞭解更多

獲得支持

Tanzu Spring 在一個簡單的訂閱中提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二進位文件。

瞭解更多

即將舉行的活動

查看 Spring 社群中所有即將舉行的活動。

查看所有