取得领先
VMware 提供培训和认证,以加速您的进步。
了解更多我们很高兴地宣布 Spring Batch 4.1.0.M3 现已在 Github 和 Pivotal 下载仓库上发布。此里程碑有哪些新内容?以下是新功能和增强功能的列表:
此里程碑的主要主题是添加对 JSR-305 注释的支持。我们利用 Spring Framework 的空值安全注释,并在 Spring Batch 的所有公共 API 中适当地添加了它们。
这些注释不仅在使用 Spring Batch API 时强制执行空值安全,还可以被 IDE 用于提供与可空性相关的有用信息。例如,如果用户想要实现 ItemReader
接口,任何支持 JSR-305 注释的 IDE 都将生成类似如下内容:
public class MyItemReader implements ItemReader<String> {
@Nullable
public String read() throws Exception {
return null;
}
}
read
方法上的 @Nullable
注释清楚地表明,此方法的约定表明它可能返回 null
。这强制执行了其 Javadoc 中所述的内容,即当数据源耗尽时,read
方法应返回 null
。
此版本中添加的另一个小功能是简化了平面文件的写入配置。具体来说,这些更新简化了分隔文件和固定宽度文件的配置。以下是更改前后的示例。
// 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 上 ping @michaelminella 或 @benas,或者在 StackOverflow 或 Gitter 上提问。 如果您发现任何问题,请在 Jira 上打开一个工单。