此版本仍在开发中,尚不被认为是稳定的。对于最新的稳定版本,请使用 Spring Integration 6.5.1spring-doc.cadn.net.cn

文件转换器

要将从文件系统读取的数据转换为对象,反之亦然,您需要做一些工作。 与FileReadingMessageSource并且在较小程度上FileWritingMessageHandler,您可能需要自己的机制来完成工作。 为此,您可以实现Transformer接口。 或者,您可以扩展AbstractFilePayloadTransformer对于入站消息。 Spring Integration 提供了一些明显的实现。spring-doc.cadn.net.cn

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

FileToByteArrayTransformer延伸AbstractFilePayloadTransformer并转换Fileobject 转换为byte[]通过使用 Spring 的FileCopyUtils. 使用一系列转换器通常比将所有转换放在一个类中要好。 在这种情况下,Filebyte[]转换可能是合乎逻辑的第一步。spring-doc.cadn.net.cn

FileToStringTransformer延伸AbstractFilePayloadTransformer转换一个FileString. 如果不出意外的话,这对于调试很有用(考虑将其与窃听器一起使用)。spring-doc.cadn.net.cn

要配置特定于文件的转换器,您可以使用文件命名空间中的相应元素,如以下示例所示:spring-doc.cadn.net.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"/>

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