設置一個遠程分塊任務須要定義一系列的 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