Spring Batch 3.0.0 現已正式釋出

釋出 | Michael Minella | 2014 年 5 月 29 日 | ...

今天我們很高興地宣佈 Spring Batch 3.0 版本釋出。這個版本的 Spring Batch 提供了對 JSR-352 的支援——我們致力於提供該支援,同時還為我們現有的 Spring Batch 社群帶來了許多新功能。

Spring Batch 3.0 中的功能

此版本的主要功能包括

  • 支援 JSR-352
  • 將 Spring Batch Integration 提升到 Spring Batch 中
  • 徹底重組依賴
  • 支援 SQLite
  • Job 作用域
  • 移除“原型”,轉而使用 Spring Boot
  • 將 Spring Batch 的構建工具從 Maven 切換到 Gradle

JSR-352 支援

作為 JEE7 中最重要的新功能之一,JSR-352 為 Java 技術棧帶來了批處理的標準化。Spring 團隊不僅在專家組中有兩名成員為規範提供了大量輸入,而且 Spring Batch 還成為大多數程式設計模型的靈感來源。Spring Batch 3.0 透過提供經過最多生產環境測試的程式碼庫來繼續 Spring 對 JSR-352 的承諾,以實現此規範。

需要注意的是 JSR-352 和 Spring Batch 之間的區別。JSR-352 提供了三點

  • 用於構建批處理元件的 API
  • 用於配置批處理元件的基於 XML 的 DSL
  • 批處理元件如何互動的契約

JSR-352 不提供任何*實現*。Spring Batch 提供了 17 個 reader、16 個 writer 以及無數其他實用工具和擴充套件,這些都在企業生產環境中經過了多年的測試。Spring Batch 提供了超越單個 JVM 的擴充套件選項。最後,Spring Batch 透過 Spring for Apache Hadoop 專案以及作為 Spring XD 的基石,提供了大資料支援。

要詳細瞭解 Spring Batch 對 JSR-352 的實現,請訪問我們的參考文件:https://docs.springframework.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 的能力。諸如多 JVM 可伸縮性和訊息驅動的作業啟動等功能,透過此模組無需自定義程式碼和少量配置即可提供。

Spring Batch Integration 中提供的功能將批處理能力擴充套件到 JSR-352 提供的能力之外,以提供健壯的企業級解決方案。您可以在參考文件中閱讀更多關於 Spring Batch Integration 及其元件的資訊:https://docs.springframework.tw/spring-batch/trunk/reference/html/springBatchIntegration.html

徹底重組依賴

作為 Spring 生態系統持續努力的一部分,Spring Batch 的第三方依賴項已更新。這使得 Spring Batch 的使用者可以使用他們信任的與 Spring Batch 整合的最新最優的庫。

支援 SQLite

大多數整合測試場景使用 HSQLDB 作為資料來源,因為它能夠輕鬆建立記憶體資料庫。然而,有時一個簡單、單檔案的選項會更好。出於這個原因,我們添加了 SQLite 作為 Spring Batch repository 的支援資料庫。

Job 作用域

Spring Batch 提供了兩種自定義 bean 作用域。第一個是 step scope,多年來一直用作延遲 bean 初始化直到 bean 被使用的步驟執行的方式。在 Spring Batch 3.0 中,我們添加了 job scope。這將允許延遲初始化作業級別的元件(例如 JobExecutionListeners),併為這些元件提供諸如作業引數注入等功能。您可以在參考手冊中閱讀更多關於 job scope 的資訊:https://docs.springframework.tw/spring-batch/trunk/reference/html/configureStep.html#job-scope

移除“原型”,轉而使用 Spring Boot

Spring Batch 傳統上提供了一個 Maven 示例專案作為啟動 Spring Batch 專案的方式。藉助 Spring Boot,我們移除了這些專案,轉而使用 Spring Boot 提供的動態引導能力。我們認為 Boot 提供了比舊的“原型”提供的功能更為優越的選擇。

從 Maven 遷移到 Gradle

最後,此版本是 Spring Batch 首次將內部構建系統從 Maven 遷移到 Gradle。這一變化對使用 jar 包的開發者沒有任何影響。Maven 使用者仍然可以透過 Maven Central 獲取它們。

展望未來

隨著此版本的釋出,我們期待計劃和開發 3.1 版本。3.1 版本將有兩個主要主題:簡化和支援 Spring XD 的工作。

在簡化方面,我們希望改進 Spring Batch 的可用性,使其能夠被考慮用於較不“重量級”的流程。透過在此處著力,它允許開發人員“發展”解決方案。許多時候,一些起初只是簡單指令碼的事物會演變成企業需要依賴以實現關鍵任務功能的流程。我們希望 Spring Batch 在指令碼階段就能被考慮,以便當該功能需要企業級解決方案時,它已經就位了。

除了核心的 Spring Batch 功能之外,Spring Batch 還作為 Spring XD 的核心技術。我們將繼續擴充套件 Spring Batch 的能力,透過 Spring XD 和 Spring for Apache Hadoop 來支援大資料解決方案。

結論

3.0.0 版本標誌著 Spring Batch 下一個重要里程碑的完成。它將 JSR-352 提供的標準帶給了我們的社群,同時也為高階使用者提供了全面的附加功能集合。我們期待您在論壇、社交媒體以及親臨 SpringOne2GX 時提供反饋!

獲取 Spring 新聞通訊

訂閱 Spring 新聞通訊,保持聯絡

訂閱

搶佔先機

VMware 提供培訓和認證,助您加速發展。

瞭解更多

獲取支援

Tanzu Spring 透過一份簡單的訂閱即可為 OpenJDK™、Spring 和 Apache Tomcat® 提供支援和二進位制檔案。

瞭解更多

即將舉行的活動

檢視 Spring 社群所有即將舉行的活動。

檢視全部