Spring Batch 4.0.0 已发布,Spring Batch 是一个轻量级的,完全面向 Spring 的批处理框架,可以应用于企业级大量的数据处理系统。Spring Batch 以 POJO 和 Spring 框架为基础,使开发者更容易的访问和利用企业级服务。Spring Batch 可以提供大量的,可重复的数据处理功能,包括日志记录/跟踪,事务管理,作业处理统计工作重新启动、跳过,和资源管理等重要功能。
Spring Batch 4.0 自2014年 3.0 发布以来的又一个主要版本。3.0 发布至今,Spring 生态系统发生了很大变化,4.0 版本旨在让 Spring Batch 更新这些变化。
Spring Batch 3 基于 Spring Framework 4 ,Spring Batch 4 重新审视了它的依赖关系树,将它与即将到来的 Spring Boot 2 依赖关系树进行了更新,包括将 Spring Framework 5 和 Java 8 作为基线要求。
如前所述,Spring Batch 4 是 Spring Boot 发布以来的第一个主要版本。在这个版本中,改善了让用户的 Java 配置体验。所有 ItemReader 和 ItemWriter 实现现在都可以使用构建器。使用 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(); }
Spring Batch 的文档多年来一直没有经过大的修改。但在这个版本中,文档已经被移植到 Asciidoc 中,以简化文档的创建,并且在整个 Spring 组合中保持一致。 除此之外,参考文档现在可以选择使用每页顶部的切换选项查看 Java 配置或 XML 配置中的所有示例。
更多详细内容请查看发行说明