领先一步
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 进行特定配置。
在 2.3 版本中,我们正在扩展 Spring Cloud Task 功能的一个领域是添加一个启动器,该启动器将允许用户仅通过属性配置单步 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 版本(计划在今年晚些时候发布),我们预计以下所有选项都将作为自动配置选项提供:
FlatFileItemReaderFlatFileItemWriterJdbcPagingItemReaderJdbcCursorItemReaderJdbcBatchItemWriterKafkaItemReaderKafkaItemWriterAmqpItemReaderAmqpItemWriter如果您觉得还有其他应该在此列表中的内容,请务必在 Github 上告知我们!
我们期待您在 Github、StackOverflow、Gitter 上或直接在 Twitter @michaelminella 上就这些新功能提供反馈!