领先一步
VMware 提供培训和认证,以加快您的进步。
了解更多信息我们很高兴地宣布 Spring Batch 4.0.0.RELEASE 现已通过 Github、Pivotal 下载存储库和 Maven Central 提供。这是 4.0 系列的正式发布版本。非常感谢所有为此次发布做出贡献的人。
Spring Batch 4 是自 2014 年发布 3.0 以来 Spring Batch 的第一个主要版本发布。自该版本发布以来,Spring 生态系统发生了很大变化。此版本旨在使 Spring Batch 能够与这些变化保持同步。当 Spring Batch 3 发布时,基于 Java 的配置刚刚开始取代基于 XML 的配置。Spring Boot 尚未发布。此外,虽然 JDK 8 刚刚发布,但 Spring Framework 4(Spring Batch 3 基于此版本)仍然支持 JDK 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 上亲自向我提供有关这些新功能的反馈!