今天我们很高兴地宣布多个与 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 支持
Spring Batch Admin,作为 2.0.0.M1 版本的一部分,现在将支持 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 已经开箱即用地提供了。在 Spring Batch Admin 中使用 Java 配置来配置作业与您使用 @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 正式发布(GA)之前到来。我们希望在项目方向上保持开放和透明。
任何关注过去几年 UI 领域变化速度的人都能很快认识到,选择现代前端技术并能够在可预见的未来保持向后兼容性目前是不可能的。当前重大变更的速度实在太快了。当我们考虑这一点以及我们致力于在相关领域提供前沿工具的愿望时,我们决定取消 UI 作为项目的正式组成部分。尽管如此,我们仍然理解客户端是 Spring Batch Admin 提供的核心功能的重要组成部分。因此,我们的计划是提供一组示例项目,演示几种不同的客户端选项。这将使我们能够在不影响向后兼容性的情况下独立于核心框架/API 演进客户端选项。
我们还将弃用旧版 REST API。新 API 在 REST API 成熟度模型上向前迈进了一步,从基于 HTTP 的基本 CRUD 转向对真正资源的支持。虽然新的 REST 端点仍在开发中,但一旦功能完善,我们将弃用旧的端点,并将开发精力集中在改进和演进新的集合上。
接下来的计划
我们将继续进行上述更改,目前计划在今年第二季度初发布另一个版本。我们对 Spring Batch Admin 的未来感到兴奋,并期待您在 Jira、Github、StackOverflow 和社交媒体上的反馈!