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

FileWritingMessageHandler - adding timestamp suffix to file

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

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

在此先感谢您的帮助

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

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

suffixFileNameGenerator.setExpression("payload.name + T(System).currentTimeMillis()");