今天我们很高兴地宣布 Spring Batch 3.0 的发布候选版本。Spring Batch 的此版本提供了我们承诺支持的 JSR-352,同时为我们现有的 Spring Batch 社区提供了许多新功能。
Release Candidate 1 中的功能
此版本的主要功能包括
- JSR-352 支持
- 将 Spring Batch Integration 提升到 Spring Batch 中
- 全面检查和更新依赖
- 支持 SQLite
- Job 作用域
- 构建 Spring Batch 从 Maven 切换到 Gradle
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 批处理作业的示例
```xml
```
Spring Batch 对 JSR-352 的实现旨在为现有 Spring Batch 用户提供最大的灵活性。我们允许开发人员将现有的 ItemReader、ItemProcessor、ItemWriters 等与 JSR-352 提供的配置工具结合使用。这为开发人员提供了构建健壮批处理作业的完整生产环境测试组件库。
要阅读更多关于 Spring Batch 实现 JSR-352 的信息,请访问我们的参考文档:https://docs.springjava.cn/spring-batch/trunk/reference/html/jsr-352.html
将 Spring Batch Integration 提升到 Spring Batch
何时使用 Spring Batch 或 Spring Integration 的界限往往模糊不清。在许多用例中,其中一个比另一个更适用。然而,在许多用例中,它们也可以结合使用来构建健壮且可扩展的数据处理系统。Spring Batch Integration 提供了一系列组件,可以将 Spring Batch 和 Spring Integration 结合使用。Spring Batch Integration 支持的用例包括
- 异步项处理
- 远程分块
- 通过消息启动批处理作业
- 远程分区
这些功能将批处理带到了 JSR-352 提供的范围之外,并允许用户开发可扩展到单个 JVM 以外的批处理应用。您可以在参考文档中阅读更多关于 Spring Batch Integration 及其组件的信息:https://docs.springjava.cn/spring-batch/trunk/reference/html/springBatchIntegration.html。
全面检查和更新依赖
我们借此机会审查了 Spring Batch 的所有第三方依赖项,并将其更新到最新版本。作为这项工作的一部分,我们还将它们与 Spring 组合中的其他项目保持一致,以便将 Spring Batch 添加到现有应用(或将其他项目添加到 Spring Batch 项目)中时获得最便捷的体验。
支持 SQLite
虽然 HSQLDB 对许多测试场景很有用,但像 SQLite 这样的基于文件的系统也非常有用。通过 3.0 版本,我们添加了 SQLite 的作业仓库 DDL,以解决这些用例。
Job 作用域
Spring Batch 的 step scope 允许开发人员延迟对象的创建,直到执行特定步骤。此功能也提供了在批处理 artifact 中提供延迟绑定的能力。通过此 3.0 版本,Spring Batch 引入了 Job scope。此作用域的工作方式与 step scope 相同(通过代理延迟对象的创建),但它将创建延迟到作业执行而不是步骤执行。这在上下文中定义多个作业或在步骤级别组件中发生重量级初始化过程时非常有用。您可以在参考手册中阅读更多关于 job scope 的信息:https://docs.springjava.cn/spring-batch/trunk/reference/html/configureStep.html#job-scope。
从 Maven 迁移到 Gradle
最后,此版本是 Spring Batch 第一个将内部构建系统从 Maven 迁移到 Gradle 的版本。此更改对使用 jar 的开发人员没有影响。他们仍然可以通过 Maven Central 获取,供 Maven 用户使用。
结论
3.0.0.RC1 代表了 Spring Batch 下一个主要里程碑的完成。它将 JSR-352 提供的标准带给了我们的社区,同时还为高级用户提供了详尽的附加功能集合。我们期待您在论坛、社交媒体以及 SpringOne2GX 现场提供反馈!