領先一步
VMware 提供訓練和認證,以加速您的進展。
了解更多我們很高興宣布 Spring Cloud Task 2.3.0-M1 現已在 Github 和 Spring 下載儲存庫上提供。非常感謝所有為此版本做出貢獻的人。
Spring Cloud Task 2.3.0-M1 旨在成為與 Spring Boot 2.3 對齊的框架版本。2.2.x 的更新包括
PlatformTransactionManager
。讓我們更詳細地了解這些更新。
如前所述,這是第一個里程碑版本,使 Spring Cloud Task 與 Spring Boot 2.3 對齊。這包括更新所有相依性以與 Spring Boot 和 Spring Cloud 對齊。
PlatformTransactionManager
當使用多個 DataSource
時,Spring Cloud Task 提供了指定要由框架的 TaskRepository
使用哪個 DataSource
的能力。但是,以前沒有簡單的方法來配置要使用的 PlatformTransactionManager
。此版本現在公開了更新,允許為框架使用特定配置 PlatformTransactionManager
。
我們擴展 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,則此配置對您來說應該很熟悉。我們首先定義任務的名稱和其中步驟的名稱。我們也提供區塊大小以指示每個交易要處理多少筆記錄。從那裡,我們為我們的步驟配置 ItemReader
和 ItemWriter
(分別為 FlatFileItemReader
和 FlatFileItemWriter
) 以供使用。如果我們願意,我們也可以實作 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
此里程碑包含 FlatFileItemReader
和 FlatFileItemWriter
的自動配置。對於我們的 GA 版本(預計在今年稍後發布),我們期望以下所有項目都可用作自動配置選項
FlatFileItemReader
FlatFileItemWriter
JdbcPagingItemReader
JdbcCursorItemReader
JdbcBatchItemWriter
KafkaItemReader
KafkaItemWriter
AmqpItemReader
AmqpItemWriter
如果您認為還有其他項目應該列入清單,請務必在 Github 上告訴我們!
我們期待您在 Github、StackOverflow、Gitter 或直接在 Twitter @michaelminella 上提供關於這些新功能的意見回饋!