如何在Spring中只扫描一个输入通道适配器的文件扫描多个目录位置?

时间:2017-02-07 07:00:58

标签: java spring spring-integration file-handling poller

我有一个任务,我正在使用spring-integration入站通道适配器为文件读取两个不同的文件夹。

我的bean定义如下:

<file:inbound-channel-adapter id="channel1"
    directory="file:${java.io.tmpdir}/input1">
    <integration:poller id="poller" fixed-delay="60000">
    </integration:poller>
</file:inbound-channel-adapter>

<file:inbound-channel-adapter id="channel2"
    directory="file:${java.io.tmpdir}/input2">
    <integration:poller id="poller2" fixed-delay="60000">
    </integration:poller>
</file:inbound-channel-adapter>

<integration:service-activator
    input-channel="channel1" ref="handler" />
<integration:service-activator
    input-channel="channel2" ref="handler" />

<bean id="handler" class="c.d.Handler" />

我想从位置和它所到的任何位置读取文件,我想用相同的处理程序类来处理它。我不能写两个主类来读取不同的入站通道适配器。我试过添加扫描仪,但它没有锻炼。我曾经尝试过,但是它给出了错误预期的单个匹配bean,但发现了2:。对此有任何帮助将非常感激。

1 个答案:

答案 0 :(得分:0)

只需使用input-channel="in"声明一个服务激活器,然后使用两个适配器......

<file:inbound-channel-adapter id="one" channel="channel" ...

<file:inbound-channel-adapter id="two" channel="channel" ...

即。将两个适配器的输出路由到同一个bean。