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 作业的启动器

在 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,此配置应该对您来说很熟悉。我们首先定义作业名称和其中的步骤名称。我们还提供了一个块大小,以指示每个事务要处理的记录数。从那里,我们为我们的步骤配置一个 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 上告知我们!

您怎么看?

我们期待您在 Github、StackOverflow、Gitter 上或直接在 Twitter @michaelminella 上就这些新功能提供反馈!

Spring Cloud Task 主页 | GitHub 源码 | 参考文档

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

VMware 提供培训和认证,助您加速进步。

了解更多

获得支持

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件,只需一份简单的订阅。

了解更多

即将举行的活动

查看 Spring 社区所有即将举行的活动。

查看所有