Annotation Interface EnableBatchIntegration


@Target(TYPE) @Retention(RUNTIME) @Documented @EnableIntegration @Import(BatchIntegrationConfiguration.class) public @interface EnableBatchIntegration
Enable Spring Batch Integration features and provide a base configuration for setting up remote chunking or partitioning infrastructure beans. By adding this annotation on a Configuration class, it will be possible to autowire the following beans: For remote chunking, an example of a configuration class would be:
 @Configuration
 @EnableBatchIntegration
 @EnableBatchProcessing
 public class RemoteChunkingAppConfig {

     @Autowired
     private RemoteChunkingManagerStepBuilderFactory managerStepBuilderFactory;

     @Autowired
     private RemoteChunkingWorkerBuilder workerBuilder;

     @Bean
     public TaskletStep managerStep() {
         return this.managerStepBuilderFactory
                 .get("managerStep")
                 .chunk(100)
                 .reader(itemReader())
                 .outputChannel(outgoingRequestsToWorkers())
                 .inputChannel(incomingRepliesFromWorkers())
                 .build();
     }

     @Bean
     public IntegrationFlow worker() {
         return this.workerBuilder
                 .itemProcessor(itemProcessor())
                 .itemWriter(itemWriter())
                 .inputChannel(incomingRequestsFromManager())
                 .outputChannel(outgoingRepliesToManager())
                 .build();
     }

     // Middleware beans omitted

 }
 
For remote partitioning, an example of a configuration class would be:
 @Configuration
 @EnableBatchIntegration
 @EnableBatchProcessing
 public class RemotePartitioningAppConfig {

     @Autowired
     private RemotePartitioningManagerStepBuilderFactory managerStepBuilderFactory;

     @Autowired
     private RemotePartitioningWorkerStepBuilderFactory workerStepBuilderFactory;

     @Bean
     public Step managerStep() {
         return this.managerStepBuilderFactory
                 .get("managerStep")
                 .partitioner("workerStep", partitioner())
                 .gridSize(10)
                 .outputChannel(outgoingRequestsToWorkers())
                 .inputChannel(incomingRepliesFromWorkers())
                 .build();
     }

     @Bean
     public Step workerStep() {
         return this.workerStepBuilderFactory
                 .get("workerStep")
                 .inputChannel(incomingRequestsFromManager())
                 .outputChannel(outgoingRepliesToManager())
                 .chunk(100)
                 .reader(itemReader())
                 .processor(itemProcessor())
                 .writer(itemWriter())
                 .build();
     }

     // Middleware beans omitted

 }
 
Since:
4.1
Author:
Mahmoud Ben Hassine, Taeik Lim