领先一步
VMware 提供培训和认证,助您加速进步。
了解更多我们很高兴地宣布 Spring Batch 4.0.0.RELEASE 现已通过 Github、Pivotal 下载仓库和 Maven Central 可用。这是 4.0 系列的通用可用版本。非常感谢所有为此版本做出贡献的人。
Spring Batch 4 是自 2014 年 3.0 版本发布以来的第一个重大版本更新。自那个版本发布以来,Spring 生态系统发生了许多变化。本次发布旨在将 Spring Batch 与这些变化同步。当 Spring Batch 3 发布时,Java 配置刚刚开始取代 XML 配置。Spring Boot 尚未宣布。此外,虽然 JDK 8 刚刚发布,但 Spring Batch 3 所基于的 Spring Framework 4 仍然支持 Java 6。Spring Batch 4 在所有这些方面都进行了升级。让我们一起来看看。
Spring Batch 3 基于 Spring Framework 4,该框架支持向前追溯到 Java 6 的依赖项生态系统。Spring Batch 4 重新审视了其依赖项树,并将其更新至即将推出的 Spring Boot 2 依赖项树,包括将 Spring Framework 5 和 Java 8 作为基线要求。虽然 Spring Batch 多年来一直拥有完整的 Java 8 支持,但此次升级允许我们通过允许使用 Java 8 惯用法来改进和简化内部工作。
如前所述,Spring Batch 4 是自 Spring Boot 发布以来的第一个重大版本更新。在此版本中,我们在用户感到最痛苦的所有方面都努力改进了 Java 配置体验。现在所有 ItemReader 和 ItemWriter 实现都提供了构建器。Spring Batch 3 和 4 之间简化的一个例子是配置 FlatFileItemReader。使用 Spring Batch 3 的 Java 配置功能,您的配置将如下所示:
@Bean
public FlatFileItemReader<Foo> reader(Resource resource)
throws Exception {
FlatFileItemReader<Foo> reader = new FlatFileItemReader<>();
reader.setName(“fooReader”);
reader.setResource(resource);
BeanWrapperFieldSetMapper<Foo> fieldSetMapper =
new BeanWrapperFieldSetMapper<>();
fieldSetMapper.setTargetType(Foo.class);
fieldSetMapper.afterPropertiesSet();
DelimitedLineTokenizer tokenizer = new DelimitedLineTokenizer();
tokenizer.setNames(new String[] {“first”, “second”, “third”});
tokenizer.afterPropertiesSet();
DefaultLineMapper lineMapper = new DefaultLineMapper();
lineMapper.setLineTokenizer(tokenizer);
lineMapper.setFieldSetMapper(fieldSetMapper);
reader.setLineMapper(lineMapper);
return reader;
}
使用 Spring Batch 4,之前的配置简化为以下内容:
@Bean
public FlatFileItemReader<Foo> reader(Resource resource) {
return new FlatFileItemReaderBuilder<Foo>()
.name(“fooReader”)
.resource(resource)
.delimited()
.names(new String[]{“first”, “second”, “third”})
.targetType(Foo.class)
.build();
}
在此版本中,像前面示例中所示的流畅构建器可用于所有 ItemReader 和 ItemWriter 实现。
Spring Batch 的文档多年来没有进行过重大改版。是时候了。在此版本中,文档已迁移到 Asciidoc,以简化文档的创建,并使其在整个 Spring 产品组合中保持一致。此外,参考文档现在可以通过每页顶部的切换器,选择以 Java 配置或 XML 配置两种方式查看任何示例。

此切换器使您可以选择以您需要的方式呈现文档。如果您正在处理基于 XML 的项目,整个文件将显示适用于 XML 配置的内容。如果您使用 Java 配置,整个文件将显示适用于使用 Java 配置的项目的内容。
除了以上所有内容之外,Spring Batch 4 还包含其他改进,包括一个新的 ItemProcessor,它可以委托给 java.util.Function,让您无需 Spring 依赖即可创建处理器。社区提供的增强功能,例如 Takaaki Iida 提供的 MongoItemReader 中的 Query 支持,就是此新功能的示例。
我们期待您在 Jira、StackOverflow 上,或直接通过 Twitter @michaelminella 或在 SpringOne Platform 会议上对这些新功能提出的反馈!