アノテーションインターフェース 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 をコンテキストに挿入することもできます。JobRepository(型SimpleJobRepositoryの Bean 名 "jobRepository" )JobLauncher(型TaskExecutorJobLauncherの Bean 名 "jobLauncher" )JobRegistry(型MapJobRegistryの Bean 名 "jobRegistry" )JobExplorer(型SimpleJobExplorerの Bean 名 "jobExplorer" )JobOperator(型SimpleJobOperatorの Bean 名 "jobOperator" )JobRegistrySmartInitializingSingleton(型JobRegistrySmartInitializingSingletonの Bean 名 "jobRegistrySmartInitializingSingleton" )
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 パラメーター値の分離レベルを設定します。ジョブインスタンスオブジェクトを識別するための一意のキーを決定するジェネレータージョブオペレータで使用するJobParametersConverterを設定します。非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。5.2 以来、代替はありません。intデータベース内の終了メッセージの最大長。boolean構成を複数のアプリケーションコンテキストにモジュール化するかどうかを示します。バッチテーブルのプレフィックス。ジョブランチャーで使用するタスクエグゼキューターを設定します。ジョブリポジトリで使用するトランザクションマネージャーを設定します。
要素の詳細
modular
boolean modular構成が複数のアプリケーションコンテキストにモジュール化されるかどうかを示します。true の場合、このコンテキストで @Bean ジョブ定義を作成するのではなく、ApplicationContextFactoryを介して別の (子) コンテキストで提供する必要があります。- 戻り値:
- 構成が複数のアプリケーションコンテキストにモジュール化されるかどうかを示すブール値。デフォルトは
falseです。
- デフォルト:
- false
dataSourceRef
StringSE dataSourceRefジョブリポジトリとジョブエクスプローラーで使用するデータソースを設定します。- 戻り値:
- 使用するデータソースの Bean 名。デフォルトは dataSource です。
- デフォルト:
- "dataSource"
databaseType
StringSE databaseTypeジョブリポジトリで使用するデータソースの型を設定します。デフォルトの型は、データソースのメタデータからイントロスペクトされます。- 戻り値:
- データソースの型。
- 導入:
- 5.1
- 関連事項:
- デフォルト:
- ""
transactionManagerRef
StringSE transactionManagerRefジョブリポジトリで使用するトランザクションマネージャーを設定します。- 戻り値:
- 使用するトランザクションマネージャーの Bean 名。デフォルトは transactionManager
- デフォルト:
- "transactionManager"
executionContextSerializerRef
StringSE executionContextSerializerRefジョブリポジトリとジョブエクスプローラーで使用する実行コンテキストシリアライザーを設定します。- 戻り値:
- 使用する実行コンテキストシリアライザーの Bean 名。デフォルトは executionContextSerializer です。
- デフォルト:
- "executionContextSerializer"
charset
StringSE charsetジョブリポジトリとジョブエクスプローラーで使用する文字セット- 戻り値:
- 使用する文字セット。デフォルトは UTF-8 です。
- デフォルト:
- "UTF-8"
tablePrefix
StringSE tablePrefixバッチテーブルのプレフィックス。デフォルトは "BATCH_" です。- 戻り値:
- バッチテーブルのプレフィックス
- デフォルト:
- "BATCH_"
maxVarCharLength
int maxVarCharLengthデータベース内の終了メッセージの最大長。- 戻り値:
- データベース内の終了メッセージの最大長
- デフォルト:
- 2500
incrementerFactoryRef
StringSE incrementerFactoryRefさまざまな DAO で使用するインクリメンタファクトリ。- 戻り値:
- 使用するインクリメンタファクトリの Bean 名。デフォルトは incrementerFactory です。
- デフォルト:
- "incrementerFactory"
jobKeyGeneratorRef
StringSE jobKeyGeneratorRefジョブインスタンスオブジェクトを識別するための一意のキーを決定するジェネレーター- 戻り値:
- 使用するジョブキージェネレーターの Bean 名。デフォルトは jobKeyGenerator です。
- 導入:
- 5.1
- デフォルト:
- "jobKeyGenerator"
lobHandlerRef
非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。5.2 以降は代替なし。v6 で削除予定ジョブリポジトリとジョブエクスプローラーで使用するラージオブジェクトハンドラー。- 戻り値:
- 使用する LOB ハンドラーの Bean 名。デフォルトは lobHandler です。
- デフォルト:
- "lobHandler"
clobType
int clobType大型オブジェクトの型。- 戻り値:
- 大型オブジェクトの型。
- デフォルト:
- 2005
isolationLevelForCreate
StringSE isolationLevelForCreatecreate パラメーター値の分離レベルを設定します。デフォルトは ISOLATION_SERIALIZABLE です。- 戻り値:
- create パラメーターの分離レベルの値
- デフォルト:
- "ISOLATION_SERIALIZABLE"
taskExecutorRef
StringSE taskExecutorRefジョブランチャーで使用するタスクエグゼキューターを設定します。- 戻り値:
- 使用するタスク実行者の Bean 名。デフォルトは taskExecutor です
- デフォルト:
- "taskExecutor"
conversionServiceRef
StringSE conversionServiceRefジョブリポジトリとジョブエクスプローラーで使用する変換サービスを設定します。このサービスは、ジョブパラメーターを文字列リテラルから型指定された値に、またはその逆に変換するために使用されます。- 戻り値:
- 使用する変換サービスの Bean 名。デフォルトは conversionService です
- デフォルト:
- "conversionService"
jobParametersConverterRef
StringSE jobParametersConverterRefジョブオペレータで使用するJobParametersConverterを設定します。- 戻り値:
- 使用するジョブパラメーターコンバーターの Bean 名。デフォルトは jobParametersConverter
- デフォルト:
- "jobParametersConverter"