跳到主要内容

文件支持

QWen Plus 中英对照 File Support

Spring Integration 的文件支持通过专用词汇扩展了 Spring Integration 核心,以处理文件的读取、写入和转换。

你需要将这个依赖添加到你的项目中:

<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-file</artifactId>
<version>6.4.2</version>
</dependency>
xml

它提供了一个命名空间,该命名空间启用了专门用于文件的通道适配器元素,并支持可以将文件内容读取到字符串或字节数组的转换器。

本节解释了 FileReadingMessageSourceFileWritingMessageHandler 的工作原理以及如何将它们配置为 beans。还讨论了通过文件特定实现的 Transformer 来处理文件的支持。最后,它解释了文件特定的命名空间。

部分总结

📄️ 文件分割器

FileSplitter 在版本 4.1.2 中被添加,在版本 4.2 中添加了命名空间支持。FileSplitter 基于 BufferedReader.readLine() 将文本文件拆分为单个行。默认情况下,拆分器使用一个迭代器 (Iterator) 来逐行发出读取自文件的内容。将迭代器属性设置为 false 会导致它在发出它们作为消息之前,先将所有行读入内存。这种用法的一个场景可能是如果你想在发送包含行的消息之前检测文件的 I/O 错误。但是,这仅适用于相对较短的文件。

📄️ 远程持久文件列表过滤器

传入和流式传入远程文件通道适配器(FTP、SFTP 和其他技术)默认配置有相应实现的 AbstractPersistentFileListFilter,并配置了内存中的 MetadataStore。要在集群中运行,这些适配器可以替换为使用共享 MetadataStore 的过滤器(更多信息请参见 Metadata Store)。这些过滤器用于防止多次获取相同的文件(除非其修改时间发生了变化)。从 5.2 版本开始,在文件被获取之前会立即将其添加到过滤器中(如果获取失败则会撤销)。