2. Spring Batch 3.0 的新功能

Spring Batch 3.0 版本具有五个主要主题:

  • JSR-352 Support

  • 升级以支持 Spring 4 和 Java 8

  • 将 Spring Batch 集成到 Spring Batch

  • JobScope Support

  • SQLite Support

2.1 JSR-352 支持

JSR-352 是用于批处理的新 Java 规范。受 Spring Batch 的启发,此规范提供了与 Spring Batch 已支持的功能类似的功能。但是,Spring Batch 3.0 已经实现了该规范,并且现在支持符合该标准的批处理作业的定义。使用 JSR-352 的作业规范语言(JSL)配置的批处理作业示例如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<job id="myJob3" xmlns="http://xmlns.jcp.org/xml/ns/javaee" version="1.0">
    <step id="step1" >
        <batchlet ref="testBatchlet" />
    </step>
</job>

有关更多详细信息,请参见第JSR-352 Support节。

2.2 将 Spring Batch 集成到 Spring Batch

数年来,Spring Batch 集成一直是 Spring Batch AdminItem 的子模块。它提供的功能可以更好地集成 Spring Integration 和 Spring Batch 中提供的功能。具体功能包括:

  • 通过消息启动作业

  • 异步ItemProcessors

  • 提供信息消息反馈

  • 通过远程分区和远程组块外部化批处理执行

有关详细信息,请参见第Spring 批处理集成节。

2.3 升级以支持 Spring 4 和 Java 8

随着将 Spring Batch Integration 提升为 Spring BatchItem 的模块,已对其进行了更新以使用 Spring Integration4.SpringIntegration 4 将核心消息传递 API 移至了 Spring 核心。因此,Spring Batch 3 现在将需要 Spring 4 或更高版本。

作为此主要版本中发生的依赖关系更新的一部分,Spring Batch 现在支持在 Java 8 上运行。它仍将在 Java 6 或更高版本上执行。

2.4 JobScope 支持

Spring Batch 中使用的 Spring 作用域“步骤”在批处理应用程序中起着举足轻重的作用,长期以来提供后期绑定功能。在 3.0 版本中,Spring Batch 现在支持“作业”范围。这个新范围允许延迟构造对象,直到实际启动 Job 为止,并为每次执行 Job 的新实例提供便利。您可以在第 5.4.2 节“工作范围”部分中阅读有关此新 bean 范围的详细信息。

2.5 SQLite 支持

通过为 SQLite 添加作业存储库 ddl,已为JobRepository添加了 SQLite 作为新支持的数据库选项。这提供了一个有用的,基于文件的数据存储以用于测试。