我有下面的代码片段从远程服务器下载文件。我想更新它更通用,所以一个目录的文件应该下载(localDirectory)可以作为一个参数传递。是否有可能以某种方式更新网关的方法或扩展处理程序来配置它?
@Bean
@ServiceActivator(inputChannel = "channel")
public MessageHandler handler() {
SftpOutboundGateway handler = new SftpOutboundGateway(sftpSessionFactory(), "get", "payload");
handler.setLocalDirectory("/folder"); //can this be pointed dynamically when downloading a file?
return handler;
}
@MessagingGateway
public interface TestGateway{
@Gateway(requestChannel = "channel")
File getFile(String filePath);
}
1条答案
按热度按时间umuewwlo1#
为此,我们建议使用一个基于Spel的选项来计算运行时请求消息中的值。请参考以下用例:
因此,可以在您的网关中按如下方式配置此服务器:
为方便起见,
EvaluationContext
中还提供了一个#remoteDirectory
SpEL变量。更多信息请参见文档:
https://docs.spring.io/spring-integration/reference/html/spel.html#spel