@Bean配置入站通道适配器

时间:2016-08-10 16:13:22

标签: spring-integration

<spring.framework.version>4.3.0.RELEASE</spring.framework.version>

我想将基于xml的集成配置转换为@Configuration类。具体如何转换

<int:channel id="files"/>
<int-file:inbound-channel-adapter id="filesIn"
                                  channel="files"
                                  directory="file:${local.send.dir}"
                                  filename-pattern="*.txt"
                                  prevent-duplicates="true">
    <int:poller fixed-rate="${poll.millis}" max-messages-per-poll="1"/>
</int-file:inbound-channel-adapter>

<int:service-activator input-channel="files"
                       ref="fileActivator"/>

这是我到目前为止所做的:

@Bean
public DirectChannel files() {
    DirectChannel chnl = new DirectChannel();

    return chnl;
}

@Bean
@InboundChannelAdapter(channel = "files")
public MessageSource<File> filesIn() {
    FileReadingMessageSource source = new FileReadingMessageSource();
    source.setDirectory(new File(env.getProperty("local.send.dir")));
    source.setFilter(new SimplePatternFileListFilter("*.txt"));

    return source;
}

1 个答案:

答案 0 :(得分:0)

这是正确的,但至少有一个@EnableIntegration类需要@Configuration来表示SI基础架构的创建。

如果fileActivator是POJO,请使用@ServiceActivator为方法添加注释,并将其添加为@Bean

如果MessageHandler添加@ServiceActivator@Bean定义。