跳到主要内容
版本:7.0.2

文件支持

DeepSeek V3 中英对照 File Support

Spring Integration 的文件支持扩展了 Spring Integration 核心,提供了一套专门的词汇来处理文件的读取、写入和转换。

此依赖项为项目所需:

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

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

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

章节总结

📄️ 文件分割器

FileSplitter 在 4.1.2 版本中被添加,其命名空间支持在 4.2 版本中添加。FileSplitter 基于 BufferedReader.readLine() 将文本文件分割成单独的行。默认情况下,拆分器使用迭代器从文件中读取行时,每次逐行发出。将 iterator 属性设置为 false 会导致它在将所有行读入内存后,再将它们作为消息发出。这样做的一个用例可能是,在发送任何包含行的消息之前,您希望检测文件上的 I/O 错误。然而,这只适用于相对较短的文件。

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

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