领先一步
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 main 类),您唯一需要做的其他工作就是配置您的作业。假设您有以下输入文件
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,此配置对您来说应该很熟悉。我们首先定义作业的名称以及其中步骤的名称。我们还提供一个块大小 (chunk size) 来指示每个事务要处理多少条记录。然后,我们为我们的步骤配置一个 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 提供关于这些新功能的反馈!