1
是否有可能实施消息分离器,可以返回Iterator
和添加自定义标头信息?春季集成:自定义分配器与头富集
举例来说,如果我有下面的类
public class CsvFileToIteratorSplitter extends AbstractMessageSplitter {
@Override
protected Object splitMessage(Message<?> message) {
Object payload = message.getPayload();
Assert.isInstanceOf(File.class, payload, "Expected java.io.File in the message payload");
try {
InputStream source = new FileInputStream((File) payload);
BufferedReader reader = new BufferedReader(new InputStreamReader(source));
String header = reader.lines().findFirst().orElse(null);
return MessageBuilder.withPayload(reader.lines().iterator())
.setHeaderIfAbsent("HEADER", header)
.build();
} catch (IOException e) {
throw new UncheckedIOException(e);
}
}
}
然后,我可以添加到头部,但有效载荷实际上是Iterator
实例和分割失败
如果我修改,使类现在是
public class CsvFileToIteratorSplitter extends AbstractMessageSplitter {
@Override
protected Object splitMessage(Message<?> message) {
log.debug("{}", message.toString());
Object payload = message.getPayload();
Assert.isInstanceOf(File.class, payload, "Expected java.io.File in the message payload");
try {
InputStream source = new FileInputStream((File) payload);
BufferedReader reader = new BufferedReader(new InputStreamReader(source));
return reader.lines().iterator();
} catch (IOException e) {
throw new UncheckedIOException(e);
}
}
}
拆分的作品,但我失去了标题信息。
有没有什么办法可以添加到标题的功能拆分?
谢谢。很好地工作 – Pram