我是 Spring Integration 的新用户,想用它来处理一些文件。我的问题是我不知道使用消息转换器并随后归档文件(前提是没有发生异常)。
问题的出现是因为我们不知道负责处理文件内容的类是应该接收文件还是只接收文件的内容。
提供给我的意见是它应该接收整个文件,然后返回文件以便存档。
有没有更好的办法?具体来说,我不知道使用文件到字符串转换器是否意味着我只有文件内容而不是文件,以便可以存档。
看来我的问题有点像这个问题在这里解释的那样。
我是 Spring Integration 的新用户,想用它来处理一些文件。我的问题是我不知道使用消息转换器并随后归档文件(前提是没有发生异常)。
问题的出现是因为我们不知道负责处理文件内容的类是应该接收文件还是只接收文件的内容。
提供给我的意见是它应该接收整个文件,然后返回文件以便存档。
有没有更好的办法?具体来说,我不知道使用文件到字符串转换器是否意味着我只有文件内容而不是文件,以便可以存档。
看来我的问题有点像这个问题在这里解释的那样。
使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)" />