使用 Spring Integration Java DSL on Spring Integration 5 在入站通道上配置目录扫描器
Configure a directory scanner on an inbound channel with Spring Integration Java DSL on Spring Integration 5
因此 Spring Integration 5 为入站渠道引入了目录扫描器的概念,我很想在我的 ftp 渠道中使用它。
但是我不确定如何使用 Java DSL 配置它。 docs say I can set the scanner on the scanner inbound-channel-adapter in xml. However, I'm using Spring Integration DSL via IntegrationFlow 似乎我在采用这种方法时无法设置此目录扫描器...
这是真的吗?有没有一种方法可以使用 IntegrationFlow 设置目录扫描器。我知道我可以转而使用更正式的 Java 配置方法,但我不想这样做,因为那样会需要很多工作。
看起来我们刚刚错过了向 DSL 添加 scanner
选项。
然而,这里有一个简单的解决方法:
FtpInboundFileSynchronizingMessageSource ftpSource =
Ftp.inboundAdapter(sessionFactory())
.regexFilter(".*\.txt$")
.get();
ftpSource.setScanner(...);
IntegrationFlow flow = IntegrationFlows.from(ftpSource,
因此,您需要从 DSL 规范中提取目标对象并直接调用其 setter。
随时将 .scanner()
选项贡献给 RemoteFileInboundChannelAdapterSpec
回到框架!
因此 Spring Integration 5 为入站渠道引入了目录扫描器的概念,我很想在我的 ftp 渠道中使用它。
但是我不确定如何使用 Java DSL 配置它。 docs say I can set the scanner on the scanner inbound-channel-adapter in xml. However, I'm using Spring Integration DSL via IntegrationFlow 似乎我在采用这种方法时无法设置此目录扫描器...
这是真的吗?有没有一种方法可以使用 IntegrationFlow 设置目录扫描器。我知道我可以转而使用更正式的 Java 配置方法,但我不想这样做,因为那样会需要很多工作。
看起来我们刚刚错过了向 DSL 添加 scanner
选项。
然而,这里有一个简单的解决方法:
FtpInboundFileSynchronizingMessageSource ftpSource =
Ftp.inboundAdapter(sessionFactory())
.regexFilter(".*\.txt$")
.get();
ftpSource.setScanner(...);
IntegrationFlow flow = IntegrationFlows.from(ftpSource,
因此,您需要从 DSL 规范中提取目标对象并直接调用其 setter。
随时将 .scanner()
选项贡献给 RemoteFileInboundChannelAdapterSpec
回到框架!