我们很高兴今天宣布多个与 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 自定义基础设施的支持
在此版本之前,对于 JSR-352 配置作业,覆盖 Spring Batch 开箱即用的基础设施的唯一方法是在作业的上下文中包含配置。这阻止了为真正共享的组件配置全局覆盖的能力。使用 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 现已开箱即用提供的基础设施。为在 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和社交媒体上提供反馈!