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