工具与应用01
Spring Batch 团队发布了两个版本:6.1.0-RC1(候选发布版,尚非最终正式版)和 6.0.6,均已可从 Maven Central 获取。6.1.0-RC1 带来一批新特性:新增 @JobParameter 注解,用来替代容易写错的 SpEL 表达式来注入作业参数;新增类型安全的 PageableItemReader,取代原来按方法名字符串反射调用仓库方法的做法;JsonLineMapper 不再绑定 Jackson,可配合 Jackson 或 Gson 读取任意类型的 JSON Lines 数据,并新增对应的写入端 JsonLineAggregator;还有 RemoteChunkingManagerBuilder、DefaultChunkProcessor、JDBC DAO 迁移到 JdbcClient,以及性能改进。一些旧类被标记弃用,计划在 7.0 移除。对使用 Spring Batch 做批处理的开发者来说,升级后配置更简洁、类型更安全,但涉及 JsonLineMapper 的代码属于源码和二进制不兼容变更,需要重新编译。
文中可用工具
- Spring BatchJava 批处理框架,本新闻的主角
- Maven Central发布和下载这些版本的仓库
- Spring Framework升级到 7.1.0-RC1 的基础框架
- Spring Integration升级到 7.2.0-RC1
- Spring Data升级到 2026.1.0-RC1,PageableItemReader 使用其 Pageable 和 Sort
- Spring LDAP升级到 4.2.0-RC1
- Spring AMQP升级到 4.2.0-RC1
- Spring Kafka升级到 4.2.0-RC1
- Micrometer升级到 1.18.0-RC1
- JacksonJSON 库,提供 JsonLineMapper 和 JsonLineAggregator 的实现
- GsonJSON 库,提供 JsonLineMapper 的另一种实现
- JdbcClientJDBC DAO 迁移到的新客户端
AI 编程02
作者 Janardhan Reddy Chejarla 介绍了一种分布式 Spring Batch 分区方案:通常这类任务需要一个持久共享的作业仓库数据库,同时往往还要靠消息代理来协调各节点。这篇文章把那个数据库直接当作唯一的协调中心,不再使用消息代理。做法是根据当前在线节点数分配工作量,每个作业临时选出一个主节点而没有常驻协调者,用比较并设置的方式认领任务以避免重复执行,并用两阶段心跳实现故障转移。文章也说明了在什么情况下仍然应该使用消息代理。
文中可用工具
- Spring Batch用于批处理分区的 Java 框架,文章讨论的分布式方案基于它
- 消息代理原文未说明具体产品;文章讨论的方案选择不用它来协调
工具与应用03
Spring Batch 团队发布了 6.1.0-M2 里程碑版本,已可从 Maven Central 获取。这个版本在 6.1.0-M1 基础上带来多项新功能和增强,同时包含一些破坏性变更,并升级了 Spring Framework、Spring Integration、Spring Data 等依赖版本。主要改进包括:MongoDB 作业仓库支持可配置的集合前缀(默认 BATCH_,不影响现有应用)、默认转换服务改基于 DefaultFormattingConversionService、异步处理 API 和本地 chunking 移至 spring-batch-core、RepositoryItemWriter 支持 flush、资源读取器支持位置模式、部分 builder 方法实现编译期安全。此外还弃用了 Apache Derby 支持、旧版日期时间转换器等 API,计划在 7.0 版本移除。
文中可用工具
- Spring Batch用于构建批处理应用的框架,本次发布 6.1.0-M2 里程碑版本
- Maven Central软件构件仓库,该版本已在此可获取
- MongoDB文档数据库,其作业仓库现支持集合前缀配置
- DefaultFormattingConversionServiceSpring Framework 的默认格式化转换服务,现用作作业仓库默认转换服务基础
- spring-batch-coreSpring Batch 核心模块,异步处理 API 和本地 chunking 已移入此模块
- spring-batch-integrationSpring Batch 集成模块,相关类保留为弃用子类以保持向后兼容
- RepositoryItemWriter写入器,现支持在写入 chunk 后刷新底层 Spring Data 仓库
- MultiResourceItemReaderBuilder多资源读取器构建器,现直接接受资源位置模式
- ResourcesItemReaderBuilder资源读取器构建器,为 ResourcesItemReader 提供位置模式能力
- ConversionServiceFactory新工具类,用于创建转换服务,替代旧日期时间转换器
- TaskExecutor任务执行器,异步处理 API 依赖它而非 Spring Integration