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 进行特定配置。

单步批处理作业的启动器

我们在 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 上告知我们!

您怎么看?

我们期待您对这些新功能的反馈,请访问 GithubStackOverflowGitter 或直接在 Twitter 上联系 @michaelminella

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

获取 Spring 新闻

关注 Spring 新闻

订阅

领先一步

VMware 提供培训和认证,助您快速提升技能。

了解更多

获取支持

Tanzu Spring 在一个简单的订阅中提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件。

了解更多

即将举行的活动

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

查看全部