此版本仍在开发中,尚不被认为是稳定的。对于最新的稳定版本,请使用 Spring Batch 文档 5.2.2! |
配置步骤
尽管所需依赖项列表相对较短,但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();
}
1 | transactionManager : Spring的PlatformTransactionManager 开始并承诺
处理过程中的交易。 |
2 | repository :特定于 Java 的名称JobRepository 定期存储
这StepExecution 和ExecutionContext 在处理期间(就在提交之前)。 |
3 | chunk :依赖项的特定于 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>
1 | transaction-manager : Spring的PlatformTransactionManager 开始并承诺
处理过程中的交易。 |
2 | job-repository :特定于 XML 的名称JobRepository 定期存储
这StepExecution 和ExecutionContext 在处理期间(就在提交之前)。为
一个串联<step/> (在<job/> ),它是<job/> 元素。对于独立<step/> ,则将其定义为<tasklet/> . |
3 | commit-interval :要处理的项目数的 XML 专用名称
在提交事务之前。 |
请注意job-repository 默认为jobRepository 和transaction-manager 默认为transactionManager .此外,ItemProcessor 是
可选,因为该项可以直接从读取器传递到写入器。 |
前面的配置包括创建面向项的唯一依赖项 步:
-
reader
:这ItemReader
提供待处理的项目。 -
writer
:这ItemWriter
处理由ItemReader
.