设置一个远程分块任务须要定义一系列的 beans:html
MessagingTemplate
来从主向从发送消息,而后再次发送回来这个在第一次看来的时候好像很是复杂,而且是一个艰巨的任务。在新发布的版本中咱们介绍使用注解 @EnableBatchIntegration
来做为一个新的 API(RemoteChunkingMasterStepBuilder
和 RemoteChunkingWorkerBuilder
) 来简化配置。下面的示例显示了如何使用新的注解和 API:git
@Configuration @EnableBatchProcessing @EnableBatchIntegration public class RemoteChunkingAppConfig { @Autowired private RemoteChunkingMasterStepBuilderFactory masterStepBuilderFactory; @Autowired private RemoteChunkingWorkerBuilder workerBuilder; @Bean public TaskletStep masterStep() { return this.masterStepBuilderFactory .get("masterStep") .chunk(100) .reader(itemReader()) .outputChannel(outgoingRequestsToWorkers()) .inputChannel(incomingRepliesFromWorkers()) .build(); } @Bean public IntegrationFlow worker() { return this.workerBuilder .itemProcessor(itemProcessor()) .itemWriter(itemWriter()) .inputChannel(incomingRequestsFromMaster()) .outputChannel(outgoingRepliesToMaster()) .build(); } // Middleware beans setup omitted }
这个新的注解和构造器配置了 beans 中最难配置的部分。如今你能够很是容易的配置主机和 Spring 整合到工做机。你能够找到远程分块示例。用户在这个示例中使用了 samples module API,有关更多细节的内容请参考 Spring Batch Integration 章节。github
与远程快配置简单化同样,这个新的版本将会介绍新的 API 来简化远程分区设置:RemotePartitioningMasterStepBuilder
和 RemotePartitioningWorkerStepBuilder。
spring
这些能够自动重写你的配置类,若是 @EnableBatchIntegration
出现了的话,具体的示例代码请参考下面的示例:ui
@Configuration @EnableBatchProcessing @EnableBatchIntegration public class RemotePartitioningAppConfig { @Autowired private RemotePartitioningMasterStepBuilderFactory masterStepBuilderFactory; @Autowired private RemotePartitioningWorkerStepBuilderFactory workerStepBuilderFactory; @Bean public Step masterStep() { return this.masterStepBuilderFactory .get("masterStep") .partitioner("workerStep", partitioner()) .gridSize(10) .outputChannel(outgoingRequestsToWorkers()) .inputChannel(incomingRepliesFromWorkers()) .build(); } @Bean public Step workerStep() { return this.workerStepBuilderFactory .get("workerStep") .inputChannel(incomingRequestsFromMaster()) .outputChannel(outgoingRepliesToMaster()) .chunk(100) .reader(itemReader()) .processor(itemProcessor()) .writer(itemWriter()) .build(); } // Middleware beans setup omitted }
有关这个新注解的更多细节,请参考 Spring Batch Integration 章节中的内容。this
https://www.cwiki.us/display/SpringBatchZH/@EnableBatchIntegration+Annotationcode