领先一步
VMware 提供培训和认证,以加速您的进步。
了解更多我们很高兴宣布今天发布了多个与 Spring Batch 相关的版本。Spring Batch 的一个错误修复版本、Spring Batch Admin 的一个错误修复版本以及 Spring Batch Admin 新版本的一个里程碑版本现已全部可用。
Spring Batch 3.0.3 是 Spring Batch 最新的维护版本,解决了许多增强功能和小型错误。Spring Batch 3.0.3 中的新功能包括:
在此版本之前,覆盖 Spring Batch 为 JSR-352 配置的作业提供的开箱即用基础设施的唯一方法是在作业上下文中包含配置。这阻止了为真正共享的组件配置全局覆盖的能力。通过 3.0.3,您现在可以通过系统属性指定 Spring 配置的位置,该属性可以覆盖现有的基础设施。
在使用远程分区时,主节点需要一种方法来接收从分区完成工作的通知。传统上,这是通过每个从节点回复主节点,结果会被汇总,然后主节点会收到所有从节点已完成的通知来实现的。然而,这需要额外的配置,可能并非必需。由于分区作业中的从节点在主节点使用的同一作业仓库中维护其状态,主节点可以直接轮询作业仓库以查看从节点是否已完成。此版本新增了配置 MessageChannelPartitionHandler
轮询作业仓库而不是等待响应消息的功能。您可以在 MessageChannelPartitionHandler
的文档中阅读有关此新功能配置的更多信息。
这不是更新的完整列表,但突出了主要新功能。您可以在 Spring Batch 的 Jira 问题跟踪器中准确查看更改内容:https://jira.spring.io/browse/BATCH/
我们今天发布的两个 Spring Batch Admin 版本中的第一个是 Spring Batch Admin 1.3 系列的第一个维护版本。此版本解决了许多小型错误,其列表可以在 Jira 中找到:https://jira.spring.io/browse/BATCHADM/
去年我在 SpringOne2GX 大会上收到的最大的问题是:“Spring Batch Admin 现在是什么情况?” Spring Batch Admin 上次更新是在七月(去年 SpringOne2GX 大会前不久),但它算不上一次大的功能升级。它的发布是为了更新依赖并解决一些错误。从那时起,我们一直在努力工作,更新了许多功能,以使 Spring Batch Admin 保持最新。今天,我们宣布实现该目标的第一个里程碑版本。
作为 2.0.0.M1 版本的一部分,Spring Batch Admin 现在将支持 JSR-352 配置的作业。按照规范要求,将基于 XML 的配置放置到 /META-INF/batch-jobs
目录中,Spring Batch Admin 将加载该作业,使其可以通过 REST 端点和当前 UI 启动。Spring Batch Admin 提供的所有监控功能(查看执行、启动/停止/重新启动等)都可用。
随着 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
。
作为 Spring XD 团队在其管理 UI 中所做工作的一部分,他们创建了一套全新的与批处理相关的 REST 端点。此版本将这些端点迁移到 Spring Batch Admin 中供所有人使用。在 /batch
路径下有一系列提供与现有 REST API 类似功能的端点,然而功能更为强大。新 API 遵循 HATEOAS 原则,允许进行 API 发现和遍历。虽然对 HATEOAS 的支持仍在进行中,但此版本展示了我们未来的发展方向。
像所有 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 和社交媒体上的反馈!