FileWritingMessageHandler - 向文件添加时间戳后缀

时间:2021-06-29 10:02:17

标签: java spring spring-integration spring-integration-dsl

我在使用 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);

添加了时间戳,但对于所有文件都是相同的。它们在不同的时间处理,所以我想将该时间附加到文件名中。 我怎样才能做到这一点?

预先感谢您的帮助

1 个答案:

答案 0 :(得分:0)

您将获得一次时间并将其作为文字添加到表达式中。

需要在运行时获取时间戳而不是bean初始化时;使用 T 运算符调用静态方法:

suffixFileNameGenerator.setExpression("payload.name + T(System).currentTimeMillis()");
相关问题