java - 通过 Spring Integration 将多个文件从不同源复制到不同目的地

标签 java spring spring-integration file-copying

我看到了以下用例。

我收到 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/

相关文章:

java - 嵌套对象的 jackson 序列化

java - 如何使 Hibernate Spring Repository 返回 HashMap

java - SOAPAction 未在 Spring Integration 中传递

java - Spring 集成: Poll HTTP

java - PubSubInboundChannelAdapter 在收到第四条消息后停止接收消息

java - 自动设置 Eclipse 工作区(导入项目、目标平台和首选项)

Java Derby DB 错误 'Exception in thread "索引统计线程 "' and "无法获取 JDBC 连接”错误

java - 选择给定节点下某种类型的所有节点

java - Spring框架中使用DataSourceInitializer初始化数据库时编码不正确

java - HTTP 状态 500 - javax.el.PropertyNotFoundException : Property 'first_name' not found on type java. lang.String