配置步骤
尽管 a 所需的依赖列表相对较短步,它是一个
极其复杂的类,可能包含许多协作者。
-
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, (1)
PlatformTransactionManager transactionManager) { (2)
return new StepBuilder(jobRepository) (3)
.<String, String>chunk(10).transactionManager(transactionManager) (4)
.reader(itemReader())
.writer(itemWriter())
.build();
}
| 1 | 存储 库:Java 特有名称JobRepository定期存储
这步执行和执行上下文在处理过程中(就在承诺之前)。 |
||
| 2 | transactionManager:Spring的PlatformTransactionManager开始并承诺
处理过程中的交易。 |
||
| 3 | 步骤名称:当步骤被宣告为豆子时,可以省略名称,并由
来自方法名称。然而,如果步未被定义为豆子,则名称必须显式地
提供给阶梯建设者类似构造器new StepBuilder(“myStep”,jobRepository). |
||
| 4 | 块:依赖的Java特有名称,表明这是一个
基于项目的步骤以及交易前需处理的物品数量为
承诺。
|
为了简化配置,你可以使用 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 | 事务管理器:Spring的PlatformTransactionManager开始并承诺
处理过程中的交易。 |
||
| 2 | 作业仓库:XML专用名称JobRepository定期存储
这步执行和执行上下文在处理过程中(就在承诺之前)。为
一个内联<步/>(定义在<工作/>),它是 上的一个属性<工作/>元素。作为独立作品<步/>,它被定义为<任务/>. |
||
| 3 | 提交间隔: XML 专用的处理项目数量名称
在交易提交之前。
|
上述配置包含创建面向项目的唯一依赖关系 步:
-
读者:这物品阅读器它提供处理所需的物品。 -
作家:这物品写手处理由物品阅读器.
| 该步骤中使用的交易管理器可能与作业中使用的不同 存储 库。不过需要注意的是,作业仓库和处理数据库 不会在同一个事务中,所以如果在处理后但工作开始前发生故障 仓库更新后,该步骤可能会被重新执行,导致重复处理。这可能 可以通过幂等处理或外部事务管理(例如JTA)来缓解。 |