下面的代码在我的情况下有效。
这是我的作家1:
@Componentpublic class Writer1 implements ItemStreamWriter<SimpleObject>,org.springframework.batch.item.ItemWriter<SimpleObject> { @Override public void write(List<? extends SimpleObject> list) throws Exception { for(SimpleObject simpleObject: list){ // some logic } } } @Override public void open(ExecutionContext executionContext) throws ItemStreamException { } @Override public void update(ExecutionContext executionContext) throws ItemStreamException { } @Override public void close() throws ItemStreamException { }}这是我的作家2:
@Componentpublic class Writer2 implements ItemStreamWriter<SimpleObject>, org.springframework.batch.item.ItemWriter<SimpleObject> { @Override public void write(List<? extends SimpleObject> list) throws Exception { for(SimpleObject simpleObject: list){// some logic } } @Override public void open(ExecutionContext executionContext) throws ItemStreamException { } @Override public void update(ExecutionContext executionContext) throws ItemStreamException { } @Override public void close() throws ItemStreamException { }}在这里,我试图初始化Tasklet
并提供一个CompositeItemWriter
:
CompositeItemWriter<SimpleObject> compositeItemWriter = new CompositeItemWriter<>(); List<org.springframework.batch.item.ItemWriter<? super SimpleObject>> delegates = new ArrayList<>(); delegates.add(writer1); delegates.add(writer2); compositeItemWriter.setDelegates(delegates); TaskletStep processingStep = stepBuilderFactory.get(getLabel() + "-" + UUID.randomUUID().toString()) .<SimpleObject, SimpleObject>chunk(5) .reader(reader) .processor(processor) .writer(compositeItemWriter) .stream(writer1) .stream(writer2) .transactionManager(txManager) .build();
请让我知道我是否错过了任何内容或信息不正确。



