领先一步
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 版本(计划于今年晚些时候发布),我们预计以下所有内容都将作为自动配置选项提供
FlatFileItemReader
FlatFileItemWriter
JdbcPagingItemReader
JdbcCursorItemReader
JdbcBatchItemWriter
KafkaItemReader
KafkaItemWriter
AmqpItemReader
AmqpItemWriter
如果您认为应该将其他内容列入清单,请务必在 Github 上告知我们!
我们期待您对这些新功能的反馈,请访问 Github、StackOverflow、Gitter 或直接在 Twitter 上联系 @michaelminella!