3

我是 Spring Integration 的新用户,想用它来处理一些文件。我的问题是我不知道使用消息转换器并随后归档文件(前提是没有发生异常)。

问题的出现是因为我们不知道负责处理文件内容的类是应该接收文件还是只接收文件的内容。

提供给我的意见是它应该接收整个文件,然后返回文件以便存档。

有没有更好的办法?具体来说,我不知道使用文件到字符串转换器是否意味着我只有文件内容而不是文件,以便可以存档。

看来我的问题有点像这个问题在这里解释的那样。

4

2 回答 2

3

使FileToStringTransformer原始文件在消息头中可用...

        Message<?> transformedMessage = MessageBuilder.withPayload(result)
                .copyHeaders(message.getHeaders())
                .setHeaderIfAbsent(FileHeaders.ORIGINAL_FILE, file)
                .setHeaderIfAbsent(FileHeaders.FILENAME, file.getName())
                .build();

文字标题名称是file_originalFile.

因此,在您的服务处理完内容后,您可以使用简单的转换器转换输出

<transformer ... expression="headers.file_originalFile" />

或者干脆直接用类似的东西存档它......

<service-activator ... expression="headers.file_originalFile.renameTo('/foo/' + headers.file_originalFile.name)" />
于 2013-05-07T14:58:57.620 回答
1

在 Spring Integration 的“官方”示例的基本组中有一个示例,您可能应该看到。GitHub 存储库是this,适合您的示例是this。它使用文件入站通道适配器、文件出站通道适配器和文件到字节转换器演示二进制和文本文件的复制和处理。希望能帮助到你。

于 2013-05-08T04:54:40.153 回答