【发布时间】:2018-06-06 16:01:01
【问题描述】:
我在Spring Boot 应用程序中使用Spring Batch。 Spring Boot 版本是 1.3.5.RELEASE。
我正在尝试使用CompositeItemWriter,以便项目列表将首先由 WriterOne 压缩/压缩,然后传递给 WriterTwo,然后将它们写入数据库。
这是我的作家 1:
@Component
public class Writer1 implements org.springframework.batch.item.ItemWriter<SimpleObject> {
@Override
public void write(List<? extends SimpleObject> list) throws Exception {
for(SimpleObject simpleObject: list){
// code which compresses the file
}
}
}
这是我的作家 2:
@Component
public class Writer2 implements org.springframework.batch.item.ItemWriter<SimpleObject> {
@Override
public void write(List<? extends SimpleObject> list) throws Exception {
for(SimpleObject simpleObject: list){
// the file object meta data are being writtren to database.
}
}
}
这是我正在尝试初始化任务步骤并为其提供 CompositeItemWriter 而不是 ItemWriter。
CompositeItemWriter compositeItemWriter = new CompositeItemWriter();
compositeItemWriter.setDelegates(Arrays.asList(writer1,writer2));
TaskletStep processingStep = stepBuilderFactory.get(getLabel() + "-" + UUID.randomUUID().toString())
.<SimpleObject, SimpleObject>chunk(5)
.reader(reader)
.processor(processor)
.writer(compositeItemWriter).transactionManager(txManager).build();
然后代码给出编译时错误:
Error:(337, 83) java: cannot find symbol
symbol: method build()
location: class org.springframework.batch.core.step.builder.StepBuilderHelper
【问题讨论】:
标签: java spring-boot spring-batch tasklet compositeitemwriter