首页 文章

Spring Batch复杂自定义ItemReader

提问于
浏览
1

我确定了读者需要使用的模式 . 我需要创建类 WSRequestClass 并将其发送到SOAP Web服务 .

public class WSRequestClass{
    private String data1;
    private String data2;
    private String data3;
    private String data4;
    private List<ClassB> dataList;
}

要创建 WSRequestClass 是必要的:

  • 从表A中读取 data1data2 .

  • 从表B中读取 data3data4 .

  • List<ClassB> 应该从更复杂的流程创建 . 首先,我从表C中获取查询数据,但此查询的结果是 List<ClassA> . 我需要处理 List<ClassA> 的每个项目并将其转换为 ClassB ,其中一些属性是从 ClassA 计算的 . (大块模式,但没有作家) .

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
    ...
}

我已经找到了简单块模式和tasklet的多个示例,但没有一个遵循这个结构 . 此作业使用java配置和JdbcTemplate进行查询 . Web服务的开发称它已经完成,我唯一的问题是我必须从多个表中读取并有效地读取列表,将每个项目转换为 ClassB 并设置为 WsRequestClass .

请指导我使用的模式,因为常见的 ItemReader 对我不起作用,我不知道如何实现自定义阅读器,让我做我想要的 .

1 回答

相关问题