Spring Batch 4.1.0.M3 已发布!

版本发布 | Mahmoud Ben Hassine | 2018年8月31日 | ...

我们很高兴地宣布,Spring Batch 4.1.0.M3 现在可在 Github 和 Pivotal 下载存储库中获取。此里程碑版本的新功能有哪些?以下是新功能和增强功能列表:

JSR-305 支持

此里程碑的主要主题是添加对 JSR-305 注解的支持。我们利用了 Spring Framework 的 Null-safety 注解,并在 Spring Batch 的所有公共 API 中适当添加了它们。

这些注解不仅会在使用 Spring Batch API 时强制执行 null 安全,还可以被 IDE 用于提供与 nullability 相关的有用信息。例如,如果用户想实现 ItemReader 接口,任何支持 JSR-305 注解的 IDE 都会生成类似以下内容的内容:

public class MyItemReader implements ItemReader<String> {

	@Nullable
	public String read() throws Exception {
		return null;
	}

}

read 方法上的 @Nullable 注解清楚地表明,该方法的契约是它可能会返回 null。这强制执行了 Javadoc 中所说的,当数据源耗尽时,read 方法应返回 null

FlatFileItemWriter Builder 增强功能

此版本中添加的另一个小功能是简化了平面文件写入的配置。具体来说,这些更新简化了分隔文件和固定宽度文件的配置。下面是更改之前和之后的示例。

// Before
@Bean
public FlatFileItemWriter<Item> itemWriter(Resource resource) {
	BeanWrapperFieldExtractor<Item> fieldExtractor = 
            new BeanWrapperFieldExtractor<Item>();
	fieldExtractor.setNames(new String[] {"field1", "field2", "field3"});
	fieldExtractor.afterPropertiesSet();
	
	DelimitedLineAggregator aggregator = new DelimitedLineAggregator();
	aggregator.setFieldExtractor(fieldExtractor);
	aggregator.setDelimiter(";");

	return new FlatFileItemWriterBuilder<Item>()
			.name("itemWriter")
			.resource(resource)
			.lineAggregator(aggregator)
			.build();
}

// After
@Bean
public FlatFileItemWriter<Item> itemWriter(Resource resource) {
	return new FlatFileItemWriterBuilder<Item>()
			.name("itemWriter")
			.resource(resource)
			.delimited()
			.delimiter(";")
			.names(new String[] {"field1", "field2", "field3"})
			.build();
}

其他改进

此里程碑还包括其他改进,例如

  • 通过继承 DefaultBatchConfigurer 来提供自定义事务管理器的能力
  • 修复了一些方法名称中的小不一致之处

反馈

有关完整的更改列表,请查看 更改日志。这是第一个 RC 之前的最后一个里程碑!因此,我们非常期待听到您对这个里程碑的反馈!请随时在 Twitter 上联系 @michaelminella@benas,或在 StackOverflow 或 Gitter 上提问。如果您发现任何问题,请在 Jira 上打开一个工单。

Spring Batch 主页 | GitHub 源码 | 参考文档

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

VMware 提供培训和认证,助您加速进步。

了解更多

获得支持

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件,只需一份简单的订阅。

了解更多

即将举行的活动

查看 Spring 社区所有即将举行的活动。

查看所有