|
此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Batch 文档 5.1.2! |
|
此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Batch 文档 5.1.2! |
该步骤必须在其
生命周期。(有关该接口的更多信息,请参阅 ItemStream)。如果某个步骤失败并且可能会失败,这一点至关重要
需要重新启动,因为该接口是 STEP 获取
它需要的有关执行之间持久状态的信息。ItemStreamItemStreamItemStream
如果 , 或 本身实现接口,则会自动注册这些接口。任何其他流都需要
单独注册。这通常是间接依赖项(例如
委托被注入到 Reader 和 Writer 中。您可以在 through the element.ItemReaderItemProcessorItemWriterItemStreamstepstream
-
Java
-
XML
以下示例显示了如何在 Java 中注册 a on a:streamstep
Java 配置
@Bean
public Step step1(JobRepository jobRepository, PlatformTransactionManager transactionManager) {
return new StepBuilder("step1", jobRepository)
.<String, String>chunk(2, transactionManager)
.reader(itemReader())
.writer(compositeItemWriter())
.stream(fileItemWriter1())
.stream(fileItemWriter2())
.build();
}
/**
* In Spring Batch 4, the CompositeItemWriter implements ItemStream so this isn't
* necessary, but used for an example.
*/
@Bean
public CompositeItemWriter compositeItemWriter() {
List<ItemWriter> writers = new ArrayList<>(2);
writers.add(fileItemWriter1());
writers.add(fileItemWriter2());
CompositeItemWriter itemWriter = new CompositeItemWriter();
itemWriter.setDelegates(writers);
return itemWriter;
}
以下示例演示如何在 XML 中注册 a on a:streamstep
XML 配置
<step id="step1">
<tasklet>
<chunk reader="itemReader" writer="compositeWriter" commit-interval="2">
<streams>
<stream ref="fileItemWriter1"/>
<stream ref="fileItemWriter2"/>
</streams>
</chunk>
</tasklet>
</step>
<beans:bean id="compositeWriter"
class="org.springframework.batch.item.support.CompositeItemWriter">
<beans:property name="delegates">
<beans:list>
<beans:ref bean="fileItemWriter1" />
<beans:ref bean="fileItemWriter2" />
</beans:list>
</beans:property>
</beans:bean>
在前面的示例中,the 不是 ,而是
代表是。因此,两个委托编写器都必须显式注册为流
以便框架正确处理它们。不需要是
显式注册为 Stream 的,因为它是 .步骤
现在可以重新启动,并且读取器和写入器的状态会正确地保留在
事件。CompositeItemWriterItemStreamItemReaderStep