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