我有这个问题: 我需要将CompositeItemProcess用于两个过程。 我有这个结构:
步骤
@SuppressWarnings("unchecked")
@Bean(name = "stepBines")
public Step stepBines() {
return this.stepBuilderFactory.get("processJob")
.chunk(1)
.reader(readerBines())
.processor(compoiteItemProcessor())
.writer(compositeItemWriter())
.build();
}
过程:
@SuppressWarnings("rawtypes")
@Bean
public ItemProcessor processorBinesInternacional(){
return new ItemProcessBinesInternacional();
}
@SuppressWarnings("rawtypes")
@Bean
public ItemProcessor processorBinesNacional(){
return new ItemProcessBinesNacional();
}
过程1:
public class ItemProcessBinesInternacional implements ItemProcessor<List<ViAccountRangeDefinition>,List<BinInternacionalMarca>>{
public ArrayList<BinInternacionalMarca> ListBinInterNacional = new ArrayList<BinInternacionalMarca>();
@Override
public List<BinInternacionalMarca> process(List<ViAccountRangeDefinition> item) throws Exception {
过程2(与过程1非常相似:
public class ItemProcessBinesNacional implements ItemProcessor<List<ViAccountRangeDefinition>,List<BinNacionalMarca>>{
public ArrayList<BinNacionalMarca> ListBinNacional = new ArrayList<BinNacionalMarca>();
@Override
public List<BinNacionalMarca> process(List<ViAccountRangeDefinition> item) throws Exception {
我尝试过使用
@SuppressWarnings({ "unchecked", "rawtypes" })
@Bean CompositeItemProcessor compositeItemProcessor()
{
CompositeItemProcessor<BinInternacionalMarca, BinNacionalMarca> compositeItemProcessor = new CompositeItemProcessor<>();
compositeItemProcessor.setDelegates((List<? extends ItemProcessor<?, ?>>) Arrays.asList(
processorBinesNacional(),
processorBinesInternacional()));
return compositeItemProcessor;
}
但是不行。我需要使用两个进程和两个编写器,但是CompositeItemWriter可以正常工作。