Spring Batch 3.0.0 正式发布

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

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

Spring Batch 3.0 的功能

此版本的 主要功能包括:

  • JSR-352 支持
  • 将 Spring Batch Integration 整合到 Spring Batch 中
  • 完全修改了依赖项
  • 支持 SQLite
  • 作业范围
  • 移除“原型”而改用 Spring Boot
  • 从 Maven 切换到 Gradle 用于构建 Spring Batch

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 个读取器、16 个写入器以及无数其他经过多年企业生产环境测试的实用程序和扩展。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 的用户使用他们信任的库的最新版本。

支持 SQLite

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

作业范围

Spring Batch 提供了两个自定义 bean 范围。第一个是步骤范围,多年来一直作为一种方法,用于延迟 bean 初始化,直到执行使用该 bean 的步骤。使用 Spring Batch 3.0,我们添加了作业范围。这将允许延迟初始化作业级别组件(例如 JobExecutionListeners),并为这些组件提供作业参数注入等功能。您可以在此处的参考手册中阅读更多关于作业范围的信息: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 Central 为 Maven 用户提供。

展望未来

通过此版本,我们期待规划和开发我们的 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 社区中所有即将举行的活动。

查看全部