アノテーションインターフェース EnableBatchIntegration


@TargetSE(TYPESE) @RetentionSE(RUNTIMESE) @DocumentedSE @EnableIntegration @Import(BatchIntegrationConfiguration.class) public @interface EnableBatchIntegration
Spring Batch Integration 機能を有効にし、リモートチャンク化またはインフラストラクチャ Bean のパーティション化をセットアップするための基本構成を提供します。このアノテーションを Configuration クラスに追加することにより、次の Bean をオートワイヤーすることが可能になります。
  • RemoteChunkingManagerStepBuilderFactory : ジョブリポジトリとトランザクションマネージャーを自動的に設定することにより、リモートチャンク設定のマネージャーステップを作成するために使用されます。
  • RemoteChunkingWorkerBuilder : リモートチャンク設定のワーカー側で統合フローを作成するために使用されます。
  • RemotePartitioningManagerStepBuilderFactory : ジョブリポジトリ、ジョブエクスプローラー、Bean ファクトリ、トランザクションマネージャーを自動的に設定することにより、リモートパーティショニングセットアップのマネージャーステップを作成するために使用されます。
  • RemotePartitioningWorkerStepBuilderFactory : ジョブリポジトリ、ジョブエクスプローラー、Bean ファクトリ、トランザクションマネージャーを自動的に設定することにより、リモートパーティショニングセットアップのワーカーステップを作成するために使用されます。
リモートチャンクの場合、構成クラスの例は次のようになります。
 @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

 }
 
リモートパーティショニングの場合、構成クラスの例は次のようになります。
 @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

 }
 
導入:
4.1
作成者:
Mahmoud Ben Hassine, Taeik Lim