java - Spring 集成: File Reading Splitting and Message Filtering

标签 java spring spring-integration filereader

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

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

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

我怎样才能实现它?任何帮助将不胜感激。谢谢。

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

 <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" />

最佳答案

从 5.0 开始,您可以在 FileSplittersetFirstLineAsHeader(true),并且第一行将作为所有消息中的 header 进行携带。

它是 XML 配置中的first-line-as-header

没有机制可以对“最后”行执行相同的操作;为此,您需要一个定制版本的分离器。读取最后一行并不容易,除非所有行的长度都相同,否则您必须先读取整个文件。

关于java - Spring 集成: File Reading Splitting and Message Filtering,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51193446/

相关文章:

java - 使用 JEditorPane 编辑 html 文本

java - Spring MVC 404未找到错误

Spring 启动: Inject Bean into HttpServlet

java - 如何从 Spring 3.x 迁移到 5.x?

JavaFX TableView 使用复选框来填充列表

java - 如何使用 String 函数将字符显示到 String 的特定索引?

rabbitmq - spring集成amqp,如何通过路由键获取消息

java - SFTP 集成 JSCH - 无法在 session 上执行

Java计算字符串中的数字

java - 如何通过控制总线启动入站 channel 适配器?