Spring集成:文件读取拆分和消息过滤

时间:2018-07-05 14:09:24

标签: java spring spring-integration filereader

我正在使用Spring Integration File Splitter(XML配置)读取文件并处理消息。

我有一个要求,我需要从文件中读取第一行和最后一行并将它们设置为标头值,以便其余行/消息都具有该信息。

换句话说,第一行和最后一行消息都需要丢弃,但其有效负载需要设置为其余消息中的标头。

我该如何实现?任何帮助将不胜感激。谢谢。

以下代码可从目录中读取文件并将其拆分:

 <int-file:inbound-channel-adapter
    id="fileSource" channel="fileReceiverChannel"
    directory="file:${file.messagesource.directory}"
    prevent-duplicates="false" ignore-hidden="true" filename-regex="${filename.regex}" >
    <int:poller fixed-delay="5000" receive-timeout="5000" 
        task-executor="pollerExecutor">
    </int:poller>
</int-file:inbound-channel-adapter>

<int-file:splitter id="splitFile"
        input-channel="splitFileChannel" output-channel="transformChannel"
        charset="UTF-8" apply-sequence="true" iterator="false" />

1 个答案:

答案 0 :(得分:0)

从5.0版本开始,您可以在setFirstLineAsHeader(true)FileSplitter,并且第一行将作为所有邮件的标题。

在XML配置中为first-line-as-header

没有机制可以对“最后”这一行做同样的事情;为此,您将需要自定义版本的拆分器。阅读最后一行并不是那么容易,除非所有行的长度都相同,否则您必须首先阅读整个文件。