Spring 批量动态生成ItemWriter

2hh7jdfx  于 2023-02-28  发布在  Spring
关注(0)|答案(1)|浏览(151)

我的itemReader在spring批处理中将一个csv记录转换为Consumer对象。此对象包含一个属性recordType,该属性为插入或更新。我的itemReader转换的文件可能包含更新和插入记录的混合。现在,在写入itemWriter时,我需要根据recordType属性将Consumer记录转换为InsertConsumerRecordDTOUpdateConsumerRecordDTO。这意味着我在运行时需要UpdateCustomerItemWriterInsertCustomerItemWriter

if(record has insert)
 Transform `Consumer` object to `InsertCustomerDTO`
 use `InsertCustomerItemWriter` and make a REST call;
else
   Transform `Consumer` object to `UpdateCustomerDTO`
   use `UpdateCustomerItemWriter` and make a REST call

是否可以通过spring batch实现此功能?

rryofs0p

rryofs0p1#

Spring Batch中的每个面向块的步骤只能有一个ItemWriter
您可以实现一个定制的ItemWriter,它接受InsertConsumerRecordDTOUpdateConsumerRecordDTO的混合List(Spring Batch 4)或Chunk(Spring Batch 5),并分别为每个InsertConsumerRecordDTOUpdateConsumerRecordDTO执行正确的操作。
如果这两个DTO类应该有一个公共基类,则可以将其用作List/Chunk的类型。否则,可以使用Object

相关问题