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


@TargetSE(TYPESE) @RetentionSE(RUNTIMESE) @DocumentedSE @Import({org.springframework.batch.core.configuration.annotation.BatchRegistrar.class,ScopeConfiguration.class,org.springframework.batch.core.configuration.annotation.AutomaticJobRegistrarBeanPostProcessor.class,BatchObservabilityBeanPostProcessor.class}) public @interface EnableBatchProcessing

Spring Batch 機能を有効にし、<batch:*> XML 名前空間を使用するのとほぼ同等の @ Configuration クラスでバッチジョブをセットアップするための基本構成を提供します。

 @Configuration
 @EnableBatchProcessing
 @Import(DataSourceConfiguration.class)
 public class AppConfig {

     @Bean
     public Job job(JobRepository jobRepository) {
         return new JobBuilder("myJob", jobRepository).start(step1()).next(step2()).build();
     }

     @Bean
     protected Step step1() {
         ...
     }

     @Bean
     protected Step step2() {
         ...
     }
 }
 
このアノテーションは JDBC ベースのバッチインフラストラクチャ Bean を構成するため、アプリケーションコンテキストで DataSourceSE および PlatformTransactionManager を Bean として提供する必要があります。@EnableBatchProcessing アノテーションが必要な構成クラスは 1 つだけであることに注意してください。構成に @EnableBatchProcessing クラスを追加すると、StepScope および JobScope のインスタンスが作成されるため、ステップ内の Bean にそれぞれ @Scope("step") および @Scope("job") を含めることができます。@Autowired を使用して、いくつかの有用な Bean をコンテキストに挿入することもできます。 構成が modular=true として指定されている場合、コンテキストには AutomaticJobRegistrar も含まれます。ジョブレジストラーは、複数のジョブがある場合に構成をモジュール化できます。これは、個別の子アプリケーションコンテキストを作成してジョブ構成を含め、それらのジョブを登録することによって機能します。その後、ジョブは、Bean 定義名の衝突を心配する必要なく、ステップおよびその他の従属コンポーネントを作成できます。型 ApplicationContextFactory の Bean は、ジョブレジストラーに自動的に登録されます。例:
 @Configuration
 @EnableBatchProcessing(modular=true)
 public class AppConfig {

     @Bean
     public ApplicationContextFactory someJobs() {
         return new GenericApplicationContextFactory(SomeJobConfiguration.class);
     }

     @Bean
     public ApplicationContextFactory moreJobs() {
         return new GenericApplicationContextFactory(MoreJobConfiguration.class);
     }

     ...

 }
 
一般に、モジュラー親コンテキスト自体にジョブの @Bean 定義を含めるべきではないことに注意してください。これは、周期的な構成依存関係が発生する可能性が高いためです。

参考までに、前に示した最初の例を次の Spring XML 構成と比較してください。

 
 <batch>
     <job-repository />
     <job id="myJob">
         <step id="step1" .../>
         <step id="step2" .../>
     </job>
     <beans:bean id="dataSource" .../>
     <beans:bean id="transactionManager" .../>
     <beans:bean id="jobLauncher" class=
"org.springframework.batch.core.launch.support.TaskExecutorJobLauncher">
         <beans:property name="jobRepository" ref="jobRepository" />
     </beans:bean>
 </batch>
 
 
作成者:
Dave Syer, Mahmoud Ben Hassine, Taeik Lim
  • オプション要素のサマリー

    オプション要素
    修飾子と型
    オプションの要素
    説明
    ジョブリポジトリとジョブエクスプローラーで使用する文字セット
    int
    大型オブジェクトの型。
    ジョブリポジトリとジョブエクスプローラーで使用する変換サービスを設定します。
    ジョブリポジトリで使用するデータソースの型を設定します。
    ジョブリポジトリとジョブエクスプローラーで使用するデータソースを設定します。
    ジョブリポジトリとジョブエクスプローラーで使用する実行コンテキストシリアライザーを設定します。
    さまざまな DAO で使用するインクリメンタファクトリ。
    create パラメーター値の分離レベルを設定します。
    ジョブインスタンスオブジェクトを識別するための一意のキーを決定するジェネレーター
    ジョブリポジトリとジョブエクスプローラーで使用するラージオブジェクトハンドラー。
    int
    データベース内の終了メッセージの最大長。
    boolean
    構成を複数のアプリケーションコンテキストにモジュール化するかどうかを示します。
    バッチテーブルのプレフィックス。
    ジョブランチャーで使用するタスクエグゼキューターを設定します。
    ジョブリポジトリで使用するトランザクションマネージャーを設定します。
  • 要素の詳細

    • modular

      boolean modular
      構成が複数のアプリケーションコンテキストにモジュール化されるかどうかを示します。true の場合、このコンテキストで @Bean ジョブ定義を作成するのではなく、ApplicationContextFactory を介して別の (子) コンテキストで提供する必要があります。
      戻り値:
      構成が複数のアプリケーションコンテキストにモジュール化されるかどうかを示すブール値。デフォルトは false です。
      デフォルト:
      false
    • dataSourceRef

      StringSE dataSourceRef
      ジョブリポジトリとジョブエクスプローラーで使用するデータソースを設定します。
      戻り値:
      使用するデータソースの Bean 名。デフォルトは dataSource です。
      デフォルト:
      " 情報源 "
    • databaseType

      StringSE databaseType
      ジョブリポジトリで使用するデータソースの型を設定します。デフォルトの型は、データソースのメタデータからイントロスペクトされます。
      戻り値:
      データソースの型。
      導入:
      5.1
      関連事項:
      デフォルト:
      ""
    • transactionManagerRef

      StringSE transactionManagerRef
      ジョブリポジトリで使用するトランザクションマネージャーを設定します。
      戻り値:
      使用するトランザクションマネージャーの Bean 名。デフォルトは transactionManager
      デフォルト:
      "transactionManager"
    • executionContextSerializerRef

      StringSE executionContextSerializerRef
      ジョブリポジトリとジョブエクスプローラーで使用する実行コンテキストシリアライザーを設定します。
      戻り値:
      使用する実行コンテキストシリアライザーの Bean 名。デフォルトは executionContextSerializer です。
      デフォルト:
      「実行コンテキストシリアライザー」
    • charset

      StringSE charset
      ジョブリポジトリとジョブエクスプローラーで使用する文字セット
      戻り値:
      使用する文字セット。デフォルトは UTF-8 です。
      デフォルト:
      "UTF-8"
    • tablePrefix

      StringSE tablePrefix
      バッチテーブルのプレフィックス。デフォルトは "BATCH_" です。
      戻り値:
      バッチテーブルのプレフィックス
      デフォルト:
      "BATCH_"
    • maxVarCharLength

      int maxVarCharLength
      データベース内の終了メッセージの最大長。
      戻り値:
      データベース内の終了メッセージの最大長
      デフォルト:
      2500
    • incrementerFactoryRef

      StringSE incrementerFactoryRef
      さまざまな DAO で使用するインクリメンタファクトリ。
      戻り値:
      使用するインクリメンタファクトリの Bean 名。デフォルトは、incrementerFactory です。
      デフォルト:
      「インクリメンタファクトリ」
    • jobKeyGeneratorRef

      StringSE jobKeyGeneratorRef
      ジョブインスタンスオブジェクトを識別するための一意のキーを決定するジェネレーター
      戻り値:
      使用するジョブキージェネレーターの Bean 名。デフォルトは jobKeyGenerator です。
      導入:
      5.1
      デフォルト:
      「ジョブキージェネレーター」
    • lobHandlerRef

      StringSE lobHandlerRef
      ジョブリポジトリとジョブエクスプローラーで使用するラージオブジェクトハンドラー。
      戻り値:
      使用する LOB ハンドラーの Bean 名。デフォルトは lobHandler です。
      デフォルト:
      「ロブハンドラー」
    • clobType

      int clobType
      大型オブジェクトの型。
      戻り値:
      大型オブジェクトの型。
      デフォルト:
      2005
    • isolationLevelForCreate

      StringSE isolationLevelForCreate
      create パラメーター値の分離レベルを設定します。デフォルトは ISOLATION_SERIALIZABLE です。
      戻り値:
      create パラメーターの分離レベルの値
      デフォルト:
      "ISOLATION_SERIALIZABLE"
    • taskExecutorRef

      StringSE taskExecutorRef
      ジョブランチャーで使用するタスクエグゼキューターを設定します。
      戻り値:
      使用するタスク実行プログラムの Bean 名。デフォルトは taskExecutor
      デフォルト:
      「タスクエグゼキュータ」
    • conversionServiceRef

      StringSE conversionServiceRef
      ジョブリポジトリとジョブエクスプローラーで使用する変換サービスを設定します。このサービスは、ジョブパラメーターを文字列リテラルから型指定された値に、またはその逆に変換するために使用されます。
      戻り値:
      使用する変換サービスの Bean 名。デフォルトは conversionService
      デフォルト:
      "conversionService"