springbatch(带来了大量新特性)

精英怪
广告

Mahmoud Ben Hassine在博客宣布了Spring Batch 4.1 发布。

springbatch(带来了大量新特性)

Spring Batch 4.1 有什么新特性

这个版本新增了以下特性:

一个新的@SpringBatchTest注解,用于简化测试批处理组件一个新的@EnableBatchIntegration注解,用于简化远程分块和分区配置支持以JSON格式读写数据支持使用bean Validation API验证项目支持JSR-305注解FlatFileItemWriterBuilder API的增强功能

@SpringBatchTest注解

Spring Batch提供了一些不错的实用程序类(例如JobLauncherTestUtils和JobRepositoryTestUtils)以及测试执行监听器(StepScopeTestExecutionListener和JobScopeTestExecutionListener)来测试批处理组件。但是,按顺序要使用这些实用程序,必须显式配置它们。此版本介绍一个名为@SpringBatchTest的新注解,它自动添加实用程序bean和监听测试上下文并使其可用于自动装配,如以下示例所示:

@EnableBatchIntegration注解

设置远程分块作业需要定义多个bean:

用于从消息中间件(JMS、AMQP和其他)获取连接的连接工厂MessagingTemplate,用于将请求从主服务器发送给工作程序,然后再返回Spring Integration的输入通道和输出通道,用于从消息中间件获取消息在主服务器(master)上的特殊内容编写器(ChunkMessageChannelItemWriter),它知道如何向工作端(workers)发送数据块以进行处理和写入工作端的消息监听器(ChunkProcessorChunkHandler)用于从主服务器接收数据

乍一看,这可能有点令人生畏。此版本引入了一个名为@EnableBatchIntegration的新注解以及新的API(RemoteChunkingMasterStepBuilderRemoteChunkingWorkerBuilder)来简化配置。以下示例展示如何使用新注解和API:

这个新的注解和新的构造器负责配置基础架构bean的繁重工作。您现在可以在工作方(worker)轻松配置主(master)步骤和Spring Integration 流程。

就像远程分块简化配置一样,此版本还引入了新的API来简化远程分区设置:RemotePartitioningMasterStepBuilderRemotePartitioningWorkerStepBuilder。如果存在@EnableBatchIntegration,则可以在配置类中自动装配它们,如以下示例所示:

对JSON的支持

此版本引入了一个新的数据读取器(JsonItemReader),它可以按以下格式读取JSON数据:

与用于XML的StaxEventItemReader类似,新的JsonItemReader使用流API来读取块中的JSON对象。Spring Batch支持两个库:

JacksonGson

要添加其他实现,可以实现JsonObjectReader接口。写JSON数据也可以通过JsonFileItemWriter来实现。

支持 Bean Validation API

此版本带来了一个名为BeanValidatingItemProcessor的新ValidatingItemProcessor实现,它允许您使用Bean Validation API(JSR-303)注解进行验证。例如,请考虑以下Person类型:

您可以通过在应用程序上下文中声明BeanValidatingItemProcessor bean来验证项目,并在面向块(chunk-oriented)的步骤中将其注册为处理器,如以下示例所示:

支持 JSR-305

这个版本添加了对JSR-305注解的支持。利用Spring Framework的Null-safety注解,并在Spring Batch的所有公共API中添加它们。

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

在read方法添加@Nullable 注解,明确表示此方法可能返回null。这正如在Javadoc中说明的那样,即当数据源处理完成时,read方法应返回null。

FlatFileItemWriterBuilder功能增强

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

其他一些优化

除了所有这些新功能外,此版本还修复了一些错误,并通过Github上的Pull Requests收集了社区提供的大量增强功能。我们要感谢所有贡献者报告问题、建议功能和贡献代码以使此版本得以发布!可以在此处找到此版本的完整变更记录。

反馈

你可以使用即将推出的Spring Boot 2.1 GA来使用Spring Batch 4.1 GA。我们期待您对StackOverflow、Gitter或JIRA的反馈。欢迎随时在Twitter上发消息给@michaelminella或@benas。

项目主页 | Github | 使用文档

原文:https://spring.io/blog/2018/10/29/spring-batch-4-1-goes-ga

作者:Mahmoud Ben Hassine

发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
评论列表 (暂无评论,201人围观)

还没有评论,来说两句吧...