アノテーションインターフェース 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 を構成するため、アプリケーションコンテキストで
DataSource
SE および PlatformTransactionManager
を Bean として提供する必要があります。@EnableBatchProcessing
アノテーションが必要な構成クラスは 1 つだけであることに注意してください。構成に @EnableBatchProcessing
クラスを追加すると、StepScope
および JobScope
のインスタンスが作成されるため、ステップ内の Bean にそれぞれ @Scope("step")
および @Scope("job")
を含めることができます。@Autowired
を使用して、いくつかの有用な Bean をコンテキストに挿入することもできます。JobRepository
(型SimpleJobRepository
の Bean 名 "jobRepository" )JobLauncher
(型TaskExecutorJobLauncher
の Bean 名 "jobLauncher" )JobRegistry
(型MapJobRegistry
の Bean 名 "jobRegistry" )JobExplorer
(型SimpleJobExplorer
の Bean 名 "jobExplorer" )JobOperator
(型SimpleJobOperator
の Bean 名 "jobOperator" )JobRegistryBeanPostProcessor
(Bean 型JobRegistryBeanPostProcessor
の名前 "jobRegistryBeanPostProcessor" )
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 isolationLevelForCreatecreate パラメーター値の分離レベルを設定します。デフォルトは ISOLATION_SERIALIZABLE です。- 戻り値:
- create パラメーターの分離レベルの値
- デフォルト:
- "ISOLATION_SERIALIZABLE"
taskExecutorRef
StringSE taskExecutorRefジョブランチャーで使用するタスクエグゼキューターを設定します。- 戻り値:
- 使用するタスク実行プログラムの Bean 名。デフォルトは taskExecutor
- デフォルト:
- 「タスクエグゼキュータ」
conversionServiceRef
StringSE conversionServiceRefジョブリポジトリとジョブエクスプローラーで使用する変換サービスを設定します。このサービスは、ジョブパラメーターを文字列リテラルから型指定された値に、またはその逆に変換するために使用されます。- 戻り値:
- 使用する変換サービスの Bean 名。デフォルトは conversionService
- デフォルト:
- "conversionService"