要将从文件系统读取的数据转换为对象,反之亦然,您需要做一些工作。 与 不同 和 在较小程度上 ,您可能需要自己的机制来完成工作。 为此,您可以实现 interface. 或者,您可以扩展 for inbound messages. Spring 集成提供了一些明显的实现。FileReadingMessageSourceFileWritingMessageHandlerTransformerAbstractFilePayloadTransformerspring-doc.cn

请参阅 Transformer 接口的 Javadoc 以查看哪些 Spring 集成类实现了它。 同样,你可以检查AbstractFilePayloadTransformer类的 Javadoc 以查看哪些 Spring 集成类扩展了它。spring-doc.cn

FileToByteArrayTransformer使用 Spring 的 . 通常,使用一系列 transformer 比将所有转换放在一个类中要好。 在这种情况下,to 转换可能是合乎逻辑的第一步。AbstractFilePayloadTransformerFilebyte[]FileCopyUtilsFilebyte[]spring-doc.cn

FileToStringTransformerextends 将对象转换为 . 如果不出意外,这对调试很有用(考虑将其与 wire tap 一起使用)。AbstractFilePayloadTransformerFileStringspring-doc.cn

要配置特定于文件的转换器,可以使用 file 命名空间中的相应元素,如下例所示:spring-doc.cn

<int-file:file-to-bytes-transformer  input-channel="input" output-channel="output"
    delete-files="true"/>

<int-file:file-to-string-transformer input-channel="input" output-channel="output"
    delete-files="true" charset="UTF-8"/>

该选项向转换器发出信号,指示它应在转换完成后删除入站文件。 这绝不能替代在多线程环境中使用时(例如,当您通常使用 Spring Integration时)。delete-filesAcceptOnceFileListFilterFileReadingMessageSourcespring-doc.cn