Spring Cloud Task 2.3.0-M1 現已推出!

發佈 | Michael Minella | 2020 年 5 月 11 日 | ...

我們很高興宣布 Spring Cloud Task 2.3.0-M1 現已在 Github 和 Spring 下載儲存庫上提供。非常感謝所有為此版本做出貢獻的人。

新功能?

Spring Cloud Task 2.3.0-M1 旨在成為與 Spring Boot 2.3 對齊的框架版本。2.2.x 的更新包括

  • 更新所有相依性。
  • 支援指定要由 Spring Cloud Task 使用的 PlatformTransactionManager
  • 單步驟 Spring Batch 任務的啟動器。

讓我們更詳細地了解這些更新。

更新所有相依性

如前所述,這是第一個里程碑版本,使 Spring Cloud Task 與 Spring Boot 2.3 對齊。這包括更新所有相依性以與 Spring Boot 和 Spring Cloud 對齊。

支援指定要由 Spring Cloud Task 使用的 PlatformTransactionManager

當使用多個 DataSource 時,Spring Cloud Task 提供了指定要由框架的 TaskRepository 使用哪個 DataSource 的能力。但是,以前沒有簡單的方法來配置要使用的 PlatformTransactionManager。此版本現在公開了更新,允許為框架使用特定配置 PlatformTransactionManager

單步驟 Batch 任務的啟動器

我們擴展 Spring Cloud Task 2.3 功能的一個領域是新增一個啟動器,讓使用者僅透過屬性即可配置單步驟 Spring Batch 任務。此版本包含透過屬性配置任務的功能,該任務可以透過屬性從平面檔案讀取和寫入。讓我們看看這將如何運作的範例。

若要使用此啟動器,首先將其作為相依性新增至您的 Spring Boot 基礎專案,如下所示

...
<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-single-step-batch-job</artifactId>
	<version>2.3.0-M1</version>
</dependency>
...
<repository>
	<id>Spring Milestone</id>
	<url>https://repo.spring.io/lib-milestones-local/</url>
</repository>

...
maven { url 'https://repo.spring.io/lib-milestones-local/' }
...
compile "org.springframework.cloud:spring-cloud-starter-single-step-batch-job:2.3.0-M1"
...

將啟動器新增至您的專案後(假設您已經使用 @EnableBatchProcessing 註解在其中建立 Spring Boot 主要類別),您需要做的另一項工作是配置您的任務。假設您有以下輸入檔案

customer1,100
customer2,101
customer3,102
customer4,103
customer5,104
customer6,105
customer7,106
customer8,107
customer9,108

在上面的輸入檔案中,CSV 中的第一欄是客戶名稱,第二欄是餘額。如果我們想要配置一個任務來讀取檔案並透過反轉欄位來重新格式化它,我們將建立一個 application.yml,如下所示

spring:
  batch:
      job:
        jobName: sample
        stepName: step1
        chunkSize: 5
        flatfilereader:
          delimited: true
          names: customer,number
          name: itemReader
          resource: /input.csv
        flatfilewriter:
          formatted: true
          format: "%s has a balance of %s"
          name: itemWriter
          names: customer,number
          resource: file:///tmp/output.txt

如果您熟悉 Spring Batch,則此配置對您來說應該很熟悉。我們首先定義任務的名稱和其中步驟的名稱。我們也提供區塊大小以指示每個交易要處理多少筆記錄。從那裡,我們為我們的步驟配置 ItemReaderItemWriter (分別為 FlatFileItemReaderFlatFileItemWriter) 以供使用。如果我們願意,我們也可以實作 ItemProcessor,啟動器會將其自動注入到我們的步驟中。

透過上述配置,我們的批次任務將讀取我們的檔案並以請求的格式寫出。上面範例檔案的輸出看起來會像這樣

customer1 has a balance of 100
customer2 has a balance of 101
customer3 has a balance of 102
customer4 has a balance of 103
customer5 has a balance of 104
customer6 has a balance of 105
customer7 has a balance of 106
customer8 has a balance of 107
customer9 has a balance of 108

此里程碑包含 FlatFileItemReaderFlatFileItemWriter 的自動配置。對於我們的 GA 版本(預計在今年稍後發布),我們期望以下所有項目都可用作自動配置選項

  • FlatFileItemReader
  • FlatFileItemWriter
  • JdbcPagingItemReader
  • JdbcCursorItemReader
  • JdbcBatchItemWriter
  • KafkaItemReader
  • KafkaItemWriter
  • AmqpItemReader
  • AmqpItemWriter

如果您認為還有其他項目應該列入清單,請務必在 Github 上告訴我們!

您的想法?

我們期待您在 GithubStackOverflowGitter 或直接在 Twitter @michaelminella 上提供關於這些新功能的意見回饋!

Spring Cloud Task 首頁 | GitHub 上的原始碼 | 參考文件

取得 Spring 電子報

隨時掌握 Spring 電子報的最新資訊

訂閱

領先一步

VMware 提供訓練和認證,以加速您的進展。

了解更多

取得支援

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

了解更多

即將舉辦的活動

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

檢視全部