FTP / FTPS适配器自定义触发器/轮询器

时间:2014-09-12 14:23:34

标签: spring-integration

首先,我刚开始关注Spring Integration,所以我的经验很少。我已经使用spring集成设置了基本的预定ftp文件解析器:

<int:channel id="ftpIn"  />

<int-ftp:inbound-channel-adapter 
    channel="ftpIn"
    session-factory="ftpClientFactory"
    filename-pattern="*.xml"
    local-directory="${TEMP_DIR}">

    <int:poller fixed-rate="${ftp.polling.rate}" />

</int-ftp:inbound-channel-adapter>

<bean id="ftpClientFactory" class="org.springframework.integration.ftp.session.DefaultFtpSessionFactory">
    <property name="host" value="${ftp.host}" />
    <property name="port" value="${ftp.port}" />
    <property name="username" value="${ftp.username}" />
    <property name="password" value="${ftp.password}" />
</bean>

<int:service-activator
    input-channel="ftpIn"
    method="handle"
    ref="ftpInHandler" />

<bean id="ftpInHandler" class="thanks.for.looking.FtpInHandler" />

这有效;但是,我想在启动预定(固定速率)ftp适配器之前添加额外的功能,以检查(以固定速率)系统是否就绪。我坚持实现这个的最佳方式。任何帮助或指导表示赞赏。

最诚挚的问候,

贾里德

1 个答案:

答案 0 :(得分:1)

<poller><advice-chain>选项。

所以你只需要编写一些自定义Advice

public class CheckSystemInterceptor implements MethodInterceptor {

    Object invoke(MethodInvocation invocation) throws Throwable {
          return mySystem.isOK() ? invocation.proceed() : null;
    }

}

使用<bean>将其配置为system checker并将其注入<advice-chain>

将在每次投票时调用。