您好,我有一个集成流程,它逐行拆分文件,将每一行转换为 POJO,然后通过 JDBC 出站网关将该 POJO 插入到数据库中。
一旦文件处理完成,我希望能够发送一封电子邮件。我目前在我的 jdbcOutboundGateway 之后发送到 smtpFlow 通道,但是这是在每次插入数据库后发送一封电子邮件。
这是我当前的流量 DSL
IntegrationFlow ftpFlow() {
return IntegrationFlows.from(
ftpSource(), spec -> spec.poller(Pollers.fixedDelay(5, TimeUnit.SECONDS)))
.split(splitFile())
.transform(this::transformToIndividualScore)
.handle(jdbcOutboundGateway(null))
.channel("smtpFlow")
.get();
在处理完所有文件后,如何让此流程仅发送一封电子邮件jdbcOutboundGateway
?
这是我的splitFile()
方法
@Bean
FileSplitter splitFile() {
FileSplitter fs = new FileSplitter(true, false);
fs.setFirstLineAsHeader("IndividualScore");
return fs;
这是我的transformToIndividualScore
方法
@Transformer
private IndividualScore transformToIndividualScore(String payload) {
String[] values = payload.split(",");
IndividualScore is = new IndividualScore();
is.setScorecardDate(values[0]);
is.setVnSpId(values[1]);
is.setPrimaryCat(values[2]);
is.setSecondaryCat(values[3]);
is.setScore(Integer.parseInt(values[4]));
is.setActual(values[5]);
return is;
}