Spring批处理复杂定制ItemReader
我是SpringBatch的新手,我无法确定我需要为读者使用什么模式。我需要创建类Spring批处理复杂定制ItemReader,spring,spring-batch,Spring,Spring Batch,我是SpringBatch的新手,我无法确定我需要为读者使用什么模式。我需要创建类WSRequestClass,并将其发送到soapweb服务 public class WSRequestClass{ private String data1; private String data2; private String data3; private String data4; private List<ClassB> dataList; }
WSRequestClass
,并将其发送到soapweb服务
public class WSRequestClass{
private String data1;
private String data2;
private String data3;
private String data4;
private List<ClassB> dataList;
}
我已经找到了多个simples区块模式和Tasklet的示例,但没有一个遵循这种结构。此作业使用java配置和JdbcTemplate进行查询。web服务调用的开发完成了,我唯一的问题是我必须从多个表中读取并高效地读取列表,将每个项转换为ClassB
,并设置为WsRequestClass
请指导我使用的模式,因为common
ItemReader
对我不起作用,我不知道如何实现自定义的reader,让我可以做我想做的事情。我认为你的做法是错误的。批处理中有一种模式称为驱动查询模式。在其中,读者基本上读取对象的键。然后使用处理器填写附加信息。您可以在这里的Spring批处理文档中阅读有关此模式的更多信息:谢谢!该链接非常有助于澄清要遵循的模式!我遇到的唯一障碍是,如果我调用处理器中的DAO来获取WSRequestClass
的dataList
,DAO的返回是ClassA
的列表(我无法更改它,因为它是一个已经存在的DAO,我必须使用它),然后我将创建一个调用DAO的ServiceImpl
,并将List
转换为List
,但这意味着使用For语句循环整个列表。有没有更好的方法利用spring batch来实现这一点?谢谢@Michael Minella,我正要写一个自定义阅读器,它可以读取多个表!
public class ClassA {
private Date date;
private BigDecimal amount1;
private BigDecimal amount2;
private String data;
//getters & setters
...
}
public class ClassB {
private Date date;
private BigDecimal amount1;
private BigDecimal amount2;
private BigDecimal amount3;
private BigDecimal amount4;
private String data1;
private String data2;
//getters & setters
...
}