我们很高兴地宣布今天发布了多个 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 的最后一次更新是在去年七月(就在去年的 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 开箱即用的基础设施。通过 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 和社交媒体上提供反馈!