Spring Batch 3.0.0 现已正式发布

发布 | Michael Minella | 2014 年 5 月 29 日 | ...

今天我们很高兴地宣布 Spring Batch 3.0 版本发布。这个版本的 Spring Batch 提供了对 JSR-352 的支持——我们致力于提供该支持,同时还为我们现有的 Spring Batch 社区带来了许多新功能。

Spring Batch 3.0 中的功能

此版本的主要功能包括

  • 支持 JSR-352
  • 将 Spring Batch Integration 提升到 Spring Batch 中
  • 彻底重组依赖
  • 支持 SQLite
  • Job 作用域
  • 移除“原型”,转而使用 Spring Boot
  • 将 Spring Batch 的构建工具从 Maven 切换到 Gradle

JSR-352 支持

作为 JEE7 中最重要的新功能之一,JSR-352 为 Java 技术栈带来了批处理的标准化。Spring 团队不仅在专家组中有两名成员为规范提供了大量输入,而且 Spring Batch 还成为大多数编程模型的灵感来源。Spring Batch 3.0 通过提供经过最多生产环境测试的代码库来继续 Spring 对 JSR-352 的承诺,以实现此规范。

需要注意的是 JSR-352 和 Spring Batch 之间的区别。JSR-352 提供了三点

  • 用于构建批处理组件的 API
  • 用于配置批处理组件的基于 XML 的 DSL
  • 批处理组件如何交互的契约

JSR-352 不提供任何*实现*。Spring Batch 提供了 17 个 reader、16 个 writer 以及无数其他实用工具和扩展,这些都在企业生产环境中经过了多年的测试。Spring Batch 提供了超越单个 JVM 的扩展选项。最后,Spring Batch 通过 Spring for Apache Hadoop 项目以及作为 Spring XD 的基石,提供了大数据支持。

要详细了解 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 的能力。诸如多 JVM 可伸缩性和消息驱动的作业启动等功能,通过此模块无需自定义代码和少量配置即可提供。

Spring Batch Integration 中提供的功能将批处理能力扩展到 JSR-352 提供的能力之外,以提供健壮的企业级解决方案。您可以在参考文档中阅读更多关于 Spring Batch Integration 及其组件的信息:https://docs.springjava.cn/spring-batch/trunk/reference/html/springBatchIntegration.html

彻底重组依赖

作为 Spring 生态系统持续努力的一部分,Spring Batch 的第三方依赖项已更新。这使得 Spring Batch 的用户可以使用他们信任的与 Spring Batch 集成的最新最优的库。

支持 SQLite

大多数集成测试场景使用 HSQLDB 作为数据源,因为它能够轻松创建内存数据库。然而,有时一个简单、单文件的选项会更好。出于这个原因,我们添加了 SQLite 作为 Spring Batch repository 的支持数据库。

Job 作用域

Spring Batch 提供了两种自定义 bean 作用域。第一个是 step scope,多年来一直用作延迟 bean 初始化直到 bean 被使用的步骤执行的方式。在 Spring Batch 3.0 中,我们添加了 job scope。这将允许延迟初始化作业级别的组件(例如 JobExecutionListeners),并为这些组件提供诸如作业参数注入等功能。您可以在参考手册中阅读更多关于 job scope 的信息:https://docs.springjava.cn/spring-batch/trunk/reference/html/configureStep.html#job-scope

移除“原型”,转而使用 Spring Boot

Spring Batch 传统上提供了一个 Maven 示例项目作为启动 Spring Batch 项目的方式。借助 Spring Boot,我们移除了这些项目,转而使用 Spring Boot 提供的动态引导能力。我们认为 Boot 提供了比旧的“原型”提供的功能更为优越的选择。

从 Maven 迁移到 Gradle

最后,此版本是 Spring Batch 首次将内部构建系统从 Maven 迁移到 Gradle。这一变化对使用 jar 包的开发者没有任何影响。Maven 用户仍然可以通过 Maven Central 获取它们。

展望未来

随着此版本的发布,我们期待计划和开发 3.1 版本。3.1 版本将有两个主要主题:简化和支持 Spring XD 的工作。

在简化方面,我们希望改进 Spring Batch 的可用性,使其能够被考虑用于较不“重量级”的流程。通过在此处着力,它允许开发人员“发展”解决方案。许多时候,一些起初只是简单脚本的事物会演变成企业需要依赖以实现关键任务功能的流程。我们希望 Spring Batch 在脚本阶段就能被考虑,以便当该功能需要企业级解决方案时,它已经就位了。

除了核心的 Spring Batch 功能之外,Spring Batch 还作为 Spring XD 的核心技术。我们将继续扩展 Spring Batch 的能力,通过 Spring XD 和 Spring for Apache Hadoop 来支持大数据解决方案。

结论

3.0.0 版本标志着 Spring Batch 下一个重要里程碑的完成。它将 JSR-352 提供的标准带给了我们的社区,同时也为高级用户提供了全面的附加功能集合。我们期待您在论坛、社交媒体以及亲临 SpringOne2GX 时提供反馈!

获取 Spring 新闻通讯

订阅 Spring 新闻通讯,保持联系

订阅

抢占先机

VMware 提供培训和认证,助您加速发展。

了解更多

获取支持

Tanzu Spring 通过一份简单的订阅即可为 OpenJDK™、Spring 和 Apache Tomcat® 提供支持和二进制文件。

了解更多

即将举行的活动

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

查看全部