java - 使用 Spring Integration 5 上的 Spring Integration Java DSL 在入站 channel 上配置目录扫描器

标签 java spring spring-integration spring-integration-dsl

因此 Spring Integration 5 引入了入站 channel 的目录扫描器的概念,我热衷于将其与我的 ftp channel 一起使用。

但是我不确定如何使用 Java DSL 配置它。 docs假设我可以在 xml 中的扫描仪入站 channel 适配器上设置扫描仪。但是,我正在使用 Spring Integration DSL via IntegrationFlow看来我在采用这种方法时无法设置此目录扫描器...

这是真的吗?有没有办法可以使用 IntegrationFlow 设置目录扫描器。我知道我可以转向使用更正式的 Java 配置方法,但我不想这样做,因为这会需要大量工作。

最佳答案

看起来我们刚刚错过了向 DSL 添加扫描仪选项。

但是,这里有一个简单的解决方法:

    FtpInboundFileSynchronizingMessageSource ftpSource =
            Ftp.inboundAdapter(sessionFactory())
                    .regexFilter(".*\\.txt$")
                    .get();
    ftpSource.setScanner(...);
    IntegrationFlow flow = IntegrationFlows.from(ftpSource,

因此,您需要从 DSL Spec 中提取目标对象并直接调用其 setter。

请随意将 .scanner() 选项贡献到 RemoteFileInboundChannelAdapterSpec 中并返回给框架!

关于java - 使用 Spring Integration 5 上的 Spring Integration Java DSL 在入站 channel 上配置目录扫描器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54884615/

相关文章:

java - 处理中,无法为ArrayList中的对象设置alpha值

java - 通过代码实现 Java 性能?

java - 重启java服务器的main函数

java - TokenStore MongoDB Spring OAuth2

java - 552 抱歉,您的信封发件人域必须存在 (#5.7.1)

java - 如何在 spring 集成中使用聚合器对事件进行分组/批处理

java - 相同的正则表达式,但使用 StringTokenizer 和 Scanner 类定界符给出不同的结果

java - 在 SonarQube 中使用 Spring 构造函数注入(inject)

Spring Boot MongoDB 用 expireAfterSeconds 索引自动删除文档不起作用

spring-integration - 延迟器 JDBCMessageStore