领先一步
VMware 提供培训和认证,助您加速进步。
了解更多今天我们高兴地宣布 Spring Batch 3.0 的最终里程碑版本 (下载)。此版本展示了我们对 JSR-352 的支持,并目前支持其所有必需的功能。我们还为现有的 Spring Batch 用户在 Spring Batch 中添加了许多新功能。Spring Batch 是一个轻量级、全面的框架,用于开发健壮的批处理应用程序。
作为 Spring Batch 3.0.0 版本的最终里程碑,此版本的所有主要功能均已完成。此版本的主要功能包括
Spring 在对此规范的贡献中投入了大量时间和资源。我们通过 JCP 与其他行业专家的合作,JSR-352 验证了 Spring Batch 在过去六年里在无数生产环境中实施和经过实战检验的批处理模式,是构建企业关键任务批处理应用程序的最佳方法。
3.0.0.M3 是 Spring Batch 第一个符合 JSR-352 的版本,它通过了所有 152 个 SE TCK 测试。Spring Batch 对 JSR-352 的实现允许用户使用熟悉的 Spring Batch 组件,同时仍然保持与 Java 标准的兼容。Spring Batch 支持通过基于 JSR-352 的 XML 配置作业,使用 JSR 中定义的注入方法(Spring 的依赖注入、batch.xml 和内联配置)注入针对 javax.batch.* 接口开发的批处理工件,以及 JSR-352 中提供的所有可伸缩性选项(通过线程进行拆分和分区)。
我们实现的目标很简单:遵循 JSR 的规则,同时不违反 Spring Batch 已经定义的规则。换句话说,在不影响现有 Spring Batch 用户的情况下实现规范。我们通过提供两条实现批处理作业的“路径”来做到这一点。第一条是传统的 Spring Batch 方式。使用 Spring Batch XML 或 Spring 的 Java 配置,针对 Spring Batch 接口进行开发等。这在 3.0 版本中不会改变。第二条“路径”是 JSR 路径。这种开发方法使用 JSR-352 定义的 XML Schema 配置作业,使用 JSR 的 JobOperator
启动作业并管理元数据,开发人员根据 JSR 的 API 编写代码。需要注意的是,这是两条完全不同的路径。虽然使用 Spring Batch 组件可以与基于 JSR-352 的作业一起工作,但它们在这些上下文中的使用将由 JSR 的规则决定。一个例子是注入 JSR-352 中定义的上下文(StepContext
和 JobContext
)。如果使用传统的 Spring Batch 方法配置作业并通过常规 Spring Batch 组件启动,这些上下文将不会对批处理工件可用。但是,如果您通过 JSR-352 XML 配置作业并通过 JSR-352 JobOperator
启动它,这些上下文将在适当的位置被注入。
需要指出的是,Spring Batch 不仅仅实现了 JSR-352。它在许多方面都超出了规范的范围
ItemReader
实现、16 种 ItemWriter
实现,以及许多其他在生产环境中经过多年测试的组件。Spring 将继续参与 JSR-352 的演进,因为它将经历维护修订,并期待对 JCP 流程做出进一步贡献。
Spring Batch Integration 几年来一直是 Spring Batch Admin 下一个鲜为人知的子项目。然而,考虑到这个库提供的功能的强大及其在企业开发中的有用性,我们决定将其从 Spring Batch Admin 的旗下移至 Spring Batch 的旗下。Spring Batch Integration 旨在提供连接批处理和集成处理的有用组件,为启动和伸缩批处理应用程序提供了多种选项。功能包括
ItemProcessor
逻辑,将一个 Future
返回给 ItemWriter
。一旦 Future
返回,结果就会被写入。JobLaunchingMessageHandler
/JobLaunchingMessageGateway
- 提供通过通道接收到的 Spring Message 启动作业的能力。ItemProcessor
逻辑的能力。这些组件使得 Spring Batch 应用程序能够在许多企业中无缝集成和伸缩。
作为我们保持依赖项最新的努力的一部分,我们已经更新了 Spring Batch 及其各种模块,以支持 Spring 4。由于这些更新,Spring 4 将是 Spring Batch 3.0.0.M3 支持的最低 Spring 版本。这不仅带来了 Spring 4 中的众多新功能,还提供了立即在 Java 8 上运行的能力。
除了上述主要新功能之外,我们还添加了一些较小的功能,并继续修复 bug。我们添加的新功能包括增加了 JobScope
和对 SQLite 的支持。
那么还剩下什么?当我们接近发布候选版本时,仍有一些少量工作需要完成。我们仍在仔细审查 Spring Batch 的依赖项,并寻求尽可能多地进行升级。
3.0.0.M3 标志着 Spring Batch 的一个重要里程碑。它允许开发人员测试基于 JSR-352 的功能,同时仍然可以依赖 Spring 和 Spring Batch 的基础。它还为框架带来了新功能。我们期待您在论坛、社交媒体和线下活动中提出意见和反馈!