领先一步
VMware 提供培训和认证,助您加速进步。
了解更多今天,我们很高兴地宣布 Spring Batch 3.0 的发布。此版本提供了对 JSR-352 的支持——我们致力于提供该支持,并为我们现有的 Spring Batch 社区带来许多新功能。
此版本的主要功能包括
JSR-352 是 JEE7 中最重要的功能之一,它为 Java 堆栈带来了批处理的标准化。Spring 团队不仅为该规范提供了广泛的输入(两位团队成员参与了专家组),而且 Spring Batch 也是大多数编程模型的灵感来源。Spring Batch 3.0 通过提供最经过生产环境测试的代码库来实现此规范,继续了 Spring 对 JSR-352 的承诺。
需要注意的是 JSR-352 和 Spring Batch 之间的区别。JSR-352 提供了三项内容:
JSR-352 不提供任何批处理组件的实现。Spring Batch 提供了 17 个读取器、16 个写入器以及无数其他经过企业生产环境多年测试的实用程序和扩展。Spring Batch 提供了超越单个 JVM 的可伸缩性选项。最后,Spring Batch 通过 Spring for Apache Hadoop 项目以及作为 Spring XD 的基石,提供了大数据支持。
要阅读更多关于 Spring Batch 对 JSR-352 的实现的信息,请访问我们的参考文档:https://docs.springframework.org.cn/spring-batch/trunk/reference/html/jsr-352.html
从外部来看,确定何时使用 Spring Batch 和何时使用 Spring Integration 可能会令人困惑。说实话,并非总有一个明确的“两者择一”的答案。在许多情况下,结合使用这两种技术是提供健壮、可伸缩解决方案的最佳选择。这就是 Spring Batch Integration 的开发原因。这个模块是一系列 Spring Batch 扩展,它允许开发人员使用 Spring Integration 来扩展 Spring Batch 的强大功能。通过这个模块,可以无需自定义代码且只需最少的配置即可实现多 JVM 可伸缩性和消息驱动的作业启动等功能。
Spring Batch Integration 提供的功能扩展了 JSR-352 提供的功能,能够提供健壮的企业级解决方案。您可以在此处参考文档中阅读更多关于 Spring Batch Integration 及其组件的信息:https://docs.springframework.org.cn/spring-batch/trunk/reference/html/springBatchIntegration.html。
作为 Spring 产品组合持续努力的一部分,Spring Batch 的第三方依赖项已更新。这允许 Spring Batch 用户使用他们信任的最新和最棒的库。
大多数集成测试场景使用 HSQLDB 作为数据源,因为它能够轻松创建内存数据库。但是,有时使用简单、单文件的选项会更方便。因此,我们添加了 SQLite 作为 Spring Batch 存储库的支持数据库。
Spring Batch 提供了两个自定义 Bean 作用域。第一个是“step scope”,它已经存在多年,用于延迟 Bean 的初始化,直到 Bean 所使用的 step 执行。在 Spring Batch 3.0 中,我们添加了“job scope”。这将允许惰性初始化作业级别的组件(例如 JobExecutionListeners),并为这些组件提供作业参数注入等功能。您可以在此处参考手册中阅读更多关于 job scope 的信息:https://docs.springframework.org.cn/spring-batch/trunk/reference/html/configureStep.html#job-scope。
Spring Batch 传统上提供了一个示例 Maven 项目来引导 Spring Batch 项目。通过 Spring Boot,我们移除了这些项目,转而使用 Spring Boot 提供的动态引导功能。我们相信 Boot 提供了远优于旧“archetypes”的选项。
最后,这是 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 上见到您的反馈!