首先,我刚开始关注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适配器之前添加额外的功能,以检查(以固定速率)系统是否就绪。我坚持实现这个的最佳方式。任何帮助或指导表示赞赏。
最诚挚的问候,
贾里德
答案 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>
。
将在每次投票时调用。