|
对于最新稳定版本,请使用Spring Batch Documentation 6.0.0! |
代表模式与步级注册
注意合成项目作家是委托模式的一个例子,该模式为
在Spring Batch中很常见。代表们自己可能会实现回调接口,
如StepListener(听音器).如果有,并且这些活动是与春季一起使用的话
批处理核心作为步在工作那么他们几乎肯定需要
手动注册步.一个直接
接线到步如果实现了,会自动注册ItemStream或者StepListener(听音器)接口。然而,由于代表们并不为步,
它们需要作为听众或流(或两者兼有)注入。
-
Java
-
XML
以下示例展示了如何在 Java 中将代理注入为流:
Java 配置
@Bean
public Job ioSampleJob(JobRepository jobRepository, Step step1) {
return new JobBuilder("ioSampleJob", jobRepository)
.start(step1)
.build();
}
@Bean
public Step step1(JobRepository jobRepository, PlatformTransactionManager transactionManager) {
return new StepBuilder("step1", jobRepository)
.<String, String>chunk(2, transactionManager)
.reader(fooReader())
.processor(fooProcessor())
.writer(compositeItemWriter())
.stream(barWriter())
.build();
}
@Bean
public CustomCompositeItemWriter compositeItemWriter() {
CustomCompositeItemWriter writer = new CustomCompositeItemWriter();
writer.setDelegate(barWriter());
return writer;
}
@Bean
public BarWriter barWriter() {
return new BarWriter();
}
以下示例展示了如何在XML中将代理注入为流:
XML 配置
<job id="ioSampleJob">
<step name="step1">
<tasklet>
<chunk reader="fooReader" processor="fooProcessor" writer="compositeItemWriter"
commit-interval="2">
<streams>
<stream ref="barWriter" />
</streams>
</chunk>
</tasklet>
</step>
</job>
<bean id="compositeItemWriter" class="...CustomCompositeItemWriter">
<property name="delegate" ref="barWriter" />
</bean>
<bean id="barWriter" class="...BarWriter" />