我看到了以下用例。
我收到 Message<Foo>
我的输入 channel 上的对象,其中 Foo
对象有 2 个属性
public class Foo {
...
public String getSourcePathString();
public String getTargetPathString();
...
}
sourcePathString
是一个字符串,表示源文件所在的位置,而 targetPathString
是文件应复制到的位置。
现在,我知道如何使用 file:outbound-channel-adapter
通过 FileNameGenerator
将文件复制到自定义目标位置,但是,我不确定如何提供从 file:inbound-channel-adapter
中读取文件的位置。以及如何仅在收到消息时激活阅读。
到目前为止,我拥有的是一个自定义服务激活器,我在自己的 bean 中执行复制,但是,我想尝试使用 Spring Integration。
那么,有没有办法在 Spring Integration 中使用已有的组件实现可触发的文件复制?
最佳答案
您当前无法在入站 channel 适配器上动态更改输入目录。
即将发布的 4.2 版本具有动态轮询器,可以实现此目的。
但是,该适配器似乎并不真正适合您的用例 - 它是一个轮询适配器,而您希望按需获取文件。
您可以通过配置 FileReadingMessageSource
、设置目录并调用 receive()
来获取文件来最小化用户代码。
关于java - 通过 Spring Integration 将多个文件从不同源复制到不同目的地,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31026328/