Spring Batch 3.0.0.RC1 现已推出
今天,我们很高兴地宣布 Spring Batch 3.0 的候选版本。此版本的 Spring Batch 提供了对 JSR-352 的支持,我们致力于提供此支持,以及我们现有 Spring Batch 社区的一些新功能。
候选版本 1 中的功能
此版本的 主要功能包括
- JSR-352 支持
- 将 Spring Batch 集成提升到 Spring Batch 中
- 完全修改了依赖项
- 支持 SQLite
- 作业范围
- 从 Maven 切换到 Gradle 用于构建 Spring Batch
JSR-352 支持
JSR-352 是批处理 JSR,于去年年底发布了 1.0 版本。由于 Spring Batch 启发了此 JSR 的大部分编程模型,因此 Spring 致力于支持它。在 3.0 版本中,Spring Batch 符合 JSR-352,通过了所有 TCK 测试。它提供了该 JSR 最经过生产测试的实现。
创建符合此 JSR 标准的批处理作业对于 Spring Batch 用户来说应该感觉非常熟悉。XML 配置和接口与现有的 Spring Batch 非常相似。以下是一个 JSR-352 批处理作业的示例
```xmlSpring Batch 对 JSR-352 的实现旨在为现有的 Spring Batch 用户提供最大的灵活性。我们允许开发人员将现有的 ItemReader、ItemProcessor、ItemWriters 等与 JSR-352 提供的配置功能结合使用。这为开发人员提供了一个完整的经过生产测试的组件库,用于构建健壮的批处理作业。
要详细了解 Spring Batch 对 JSR-352 的实现,请访问我们的参考文档:https://docs.springframework.org.cn/spring-batch/trunk/reference/html/jsr-352.html
将 Spring Batch 集成提升到 Spring Batch 中
何时使用 Spring Batch 或 Spring Integration 之间的界限通常很模糊。在许多用例中,一个比另一个更有效。但是,在许多用例中,它们也可以一起使用来构建健壮且可扩展的数据处理系统。Spring Batch Integration 提供了一组组件来一起使用 Spring Batch 和 Spring Integration。Spring Batch Integration 提供的用例包括
- 异步项处理
- 远程分块
- 通过消息启动批处理作业
- 远程分区
这些功能使批处理超越了 JSR-352 提供的功能,并允许用户开发超出单个 JVM 规模的批处理应用程序。您可以在此处参考文档中详细了解 Spring Batch Integration 及其组件:https://docs.springframework.org.cn/spring-batch/trunk/reference/html/springBatchIntegration.html。
完全修改了依赖项
我们借此机会审查了 Spring Batch 的所有第三方依赖项,并将其更新到最新版本。作为此练习的一部分,我们还使其与 Spring 产品组合中的其他项目保持一致,以便最轻松地在现有应用程序中添加 Spring Batch(或在 Spring Batch 项目中添加其他项目)。
支持 SQLite
虽然 HSQLDB 对于许多测试场景很有用,但像 SQLite 这样的基于文件的系统也可能非常有用。在 3.0 版本中,我们添加了 SQLite 的作业存储库 DDL 以解决这些用例。
作业范围
Spring Batch 的步骤范围允许开发人员延迟对象的创建,直到执行特定步骤。此功能还公开了在批处理工件中提供属性延迟绑定。在此 3.0 版本中,Spring Batch 引入了作业范围。此范围的工作方式与步骤范围相同(通过代理延迟对象的创建),但它将延迟创建,直到作业执行而不是步骤。当在上下文中定义多个作业或当在步骤级组件中发生重量级初始化过程时,这可能很有用。您可以在此处参考手册中详细了解作业范围:https://docs.springframework.org.cn/spring-batch/trunk/reference/html/configureStep.html#job-scope。
从 Maven 迁移到 Gradle
最后,此版本是 Spring Batch 首次从 Maven 迁移到 Gradle 用于内部构建系统。此更改对使用 jar 的开发人员没有任何影响。对于 maven 用户,它们仍将通过 Maven Central 获得。
结论
3.0.0.RC1 代表了 Spring Batch 下一个主要里程碑的完成。它为我们的社区带来了 JSR-352 提供的标准,并为高级用户提供了大量附加功能。我们期待您在论坛、社交媒体以及在 SpringOne2GX 上的反馈!