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