我在使用 spring 集成向文件添加时间戳后缀时遇到问题。
这是我的 FileWritingMessageHandler bean:
public FileWritingMessageHandler getFileWritingMessageHandler(String directory) {
FileWritingMessageHandler handler = new FileWritingMessageHandler(new File(directory));
handler.setFileExistsMode(FileExistsMode.REPLACE);
handler.setExpectReply(false);
handler.setDeleteSourceFiles(true);
return handler;
}
我尝试使用 handler.setTemporaryFileSuffix(getCurrentTimeStamp());
但它什么也没做
我也尝试过使用 DefaultFileNameGenerator :
DefaultFileNameGenerator suffixFileNameGenerator = new DefaultFileNameGenerator();
suffixFileNameGenerator.setHeaderName("id");
suffixFileNameGenerator.setExpression("payload.name + '"+ getCurrentTimeStamp()+"'");
handler.setFileNameGenerator(suffixFileNameGenerator);
添加了时间戳,但对于所有文件都是相同的。它们在不同的时间处理,所以我想将该时间附加到文件名中。 我怎样才能做到这一点?
预先感谢您的帮助
答案 0 :(得分:0)
您将获得一次时间并将其作为文字添加到表达式中。
需要在运行时获取时间戳而不是bean初始化时;使用 T
运算符调用静态方法:
suffixFileNameGenerator.setExpression("payload.name + T(System).currentTimeMillis()");