我们很高兴今天宣布许多与 Spring Batch 相关的版本发布。Spring Batch 的错误修复版本、Spring Batch Admin 的错误修复版本以及新版 Spring Batch Admin 的里程碑版本现已全部可用。
Spring Batch 3.0.3
Spring Batch 3.0.3 代表 Spring Batch 的最新维护版本,它解决了许多增强功能和次要错误修复。Spring Batch 3.0.3 的新功能包括:
改进对 JSR-352 自定义基础设施的支持
在此版本之前,要覆盖 Spring Batch 为 JSR-352 配置的作业提供的开箱即用型基础架构,唯一的方法是在作业的上下文中包含配置。这阻止了为真正共享的组件配置全局覆盖的能力。在 3.0.3 版本中,您现在可以通过系统属性指定 Spring 配置的位置,该属性可以覆盖现有的基础架构。
分区结果的可选轮询
使用远程分区时,主节点需要一种方法来获知从节点分区已完成其工作。历史上,这是通过每个从节点回复主节点来实现的,结果被聚合,然后主节点收到所有从节点都已完成的通知。但是,这需要额外的配置,而这些配置可能并非必需。由于分区作业中的从节点在其与主节点相同的作业存储库中维护其状态,因此主节点只需轮询作业存储库即可查看从节点是否已完成。此版本增加了配置MessageChannelPartitionHandler
以轮询作业存储库而不是等待响应消息的功能。您可以在MessageChannelPartitionHandler
的文档中阅读有关此新功能配置的更多信息。
这不是更新的完整列表,而是突出了主要的新功能。您可以在此处查看 Spring Batch 的 Jira 问题跟踪器中发生了哪些变化:https://jira.spring.io/browse/BATCH/
Spring Batch Admin
1.3.1
我们今天发布的两个 Spring Batch Admin 版本中的第一个是 Spring Batch Admin 1.3 系列的第一个维护版本。此版本解决了许多小错误,其列表可以在此处的 Jira 中找到:https://jira.spring.io/browse/BATCHADM/
2.0.0.M1
去年 SpringOne2GX 上我收到的最大问题是“Spring Batch Admin 怎么样了?”Spring Batch Admin 的上次更新是在 7 月(去年 SpringOne2GX 之前不久),但这并不是什么重要的功能升级。它的发布是为了更新依赖项并解决一些错误。从那时起,我们一直在努力更新许多功能,以使 Spring Batch Admin 能够保持最新。今天,我们宣布朝着这个目标迈出的第一步。
JSR-352 支持
作为 2.0.0.M1 版本的一部分,Spring Batch Admin 现在将支持 JSR-352 配置的作业。通过将基于 XML 的配置放在/META-INF/batch-jobs
目录中(如规范要求),Spring Batch Admin 将加载作业,以便通过 REST 端点和当前 UI 启动。Spring Batch Admin 提供的所有监控方面(查看执行、启动/停止/重新启动等)都可用。
Java 配置支持
随着 Spring 社区从基于 XML 的配置转向基于 Java 的配置,Spring Batch Admin 也在跟上。从这个版本开始,Spring Batch Admin 支持配置一个包来扫描基于 Java 配置的 Spring Batch 作业。与任何其他批处理作业一样,这些作业将被加载并可供执行,就像它们的 XML 对应物一样。
需要注意的是,虽然 Spring Batch Admin 现在支持基于 Java 的配置,但您不会想使用@EnableBatchProcessing
。这是有原因的。@EnableBatchProcessing
提供了一组 Spring Batch Admin 本身已经提供的开箱即用的基础架构。通过 Java 配置配置要在 Spring Batch Admin 中使用的作业,与使用@EnableBatchProcessing
完全相同……无需使用该注释。您仍然可以像往常一样自动装配JobBuilderFactory
和StepBuilderFactory
。
REST 端点更新
作为 Spring XD 团队在其管理 UI 中所做的工作的一部分,他们创建了一套全新的与批处理相关的 REST 端点。此版本将这些端点迁移到 Spring Batch Admin 中供所有人使用。在/batch
路径下有一组端点,其功能类似于现有的 REST API,但更进一步。新的 API 遵循 HATEOAS 原则,允许 API 发现和遍历。虽然对 HATEOAS 的支持仍在进行中,但此版本提供了我们前进方向的展望。
Spring Batch Admin 的未来
像所有 Spring 项目一样,我们努力尽可能地做到向后兼容。因此,Spring Batch Admin 2.0 正在进行一些重大更改,以在将来实现向后兼容性。这些更改包括删除“官方”UI 和弃用旧版本的 REST API。此版本不包含任何这些更改。这些更改将在 Spring Batch Admin 2.0 正式发布之前进行。我们希望对项目的走向保持公开和透明。
任何关注过去几年 UI 领域变化速度的人都可以很快地辨别出,选择一种现代前端技术并能够在可预见的未来保持向后兼容性目前是不可能的。重大更改的速度太快了。当考虑到我们希望提供处于其相关领域前沿的工具的愿望时,我们决定将 UI 从项目的正式部分中移除。也就是说,我们仍然理解客户端是 Spring Batch Admin 提供的重要组成部分。因此,我们的计划是提供一系列示例项目,这些项目演示了一些不同的客户端选项。这将使我们能够独立于核心框架/API 来发展客户端选项,而不会阻止我们保持向后兼容性。
我们还将弃用旧版本的 REST API。新的 API 在 REST API 成熟度模型中向前迈进了一步,从基本的 HTTP 上的 CRUD 转向对真实资源的支持。虽然新的 REST 端点仍在开发中,但一旦它们功能完整,我们将弃用旧的端点,以专注于改进和发展新的端点集。
我们的下一步
我们将继续努力完成上述更改,目前计划在今年第二季度初发布另一个版本。我们对 Spring Batch Admin 的未来感到兴奋,并期待您在Jira、Github、StackOverflow和社交媒体上提供反馈!