ステップの構成

Step に必要な依存関係の比較的短いリストにもかかわらず、これは非常に複雑なクラスであり、多くの協力者を潜在的に含むことができます。

  • Java

  • XML

Java 構成を使用する場合、次の例に示すように、Spring Batch ビルダーを使用できます。

Java 構成
/**
 * Note the JobRepository is typically autowired in and not needed to be explicitly
 * configured
 */
@Bean
public Job sampleJob(JobRepository jobRepository, Step sampleStep) {
    return new JobBuilder("sampleJob", jobRepository)
                .start(sampleStep)
                .build();
}

/**
 * Note the TransactionManager is typically autowired in and not needed to be explicitly
 * configured
 */
@Bean
public Step sampleStep(JobRepository jobRepository, (2)
		PlatformTransactionManager transactionManager) { (1)
	return new StepBuilder("sampleStep", jobRepository)
				.<String, String>chunk(10, transactionManager) (3)
				.reader(itemReader())
				.writer(itemWriter())
				.build();
}
1transactionManager: Spring の PlatformTransactionManager は、処理中にトランザクションを開始およびコミットします。
2repository: 処理中(コミット直前)に StepExecution および ExecutionContext を定期的に保管する JobRepository の Java 固有の名前。
3chunk: これがアイテムベースのステップであることを示す依存関係の Java 固有の名前と、トランザクションがコミットされる前に処理されるアイテムの数。
repository のデフォルトは jobRepository ( @EnableBatchProcessing を通じて提供)、transactionManager のデフォルトは transactionManager (アプリケーションコンテキストから提供) であることに注意してください。また、項目はリーダーからライターに直接渡すことができるため、ItemProcessor はオプションです。

構成を容易にするために、次の例に示すように、Spring Batch XML 名前空間を使用できます。

XML 構成
<job id="sampleJob" job-repository="jobRepository"> (2)
    <step id="step1">
        <tasklet transaction-manager="transactionManager"> (1)
            <chunk reader="itemReader" writer="itemWriter" commit-interval="10"/> (3)
        </tasklet>
    </step>
</job>
1transaction-manager: Spring の PlatformTransactionManager は、処理中にトランザクションを開始およびコミットします。
2job-repository: 処理中 (コミットの直前) に StepExecution および ExecutionContext を定期的に保存する JobRepository の XML 固有の名前。インライン <step/> ( <job/> 内で定義されたもの) の場合、これは <job/> 要素の属性です。スタンドアロン <step/> の場合、これは <tasklet/> の属性として定義されます。
3commit-interval: トランザクションがコミットされる前に処理されるアイテムの数の XML 固有の名前。
job-repository のデフォルトは jobRepository であり、transaction-manager のデフォルトは transactionManager であることに注意してください。また、項目はリーダーからライターに直接渡すことができるため、ItemProcessor はオプションです。

前述の構成には、項目指向のステップを作成するために必要な依存関係のみが含まれています。

  • reader: 処理するアイテムを提供する ItemReader

  • writerItemReader によって提供されるアイテムを処理する ItemWriter