示例中提供的文件入站适配器示例不起作用

File Inbound Adapter example provided in sample not working

@SpringBootApplication
public class FileReadingJavaApplication {

    public static void main(String[] args) {
        new SpringApplicationBuilder(FileReadingJavaApplication.class)
            .web(false)
            .run(args);
    }

    @Bean
    public IntegrationFlow fileReadingFlow() {
         return IntegrationFlows
                  .from(s -> s.file(new File(INBOUND_PATH))
                              .patternFilter("*.txt"),
                          e -> e.poller(Pollers.fixedDelay(1000)))
                  .transform(Files.toStringTransformer())
                  .channel("processFileChannel")
                  .get();
        }

}

在 eclipse 中读取以下错误: 此行有多个标记 - 这个表达式的目标类型必须是一个函数式接口 - IntegrationFlows 类型中的方法 from(String, boolean) 不适用于参数 (( s) -> {}, ( e) -> {})

听起来您已经在使用 Spring 集成 5.x。通道适配器没有那个工厂来避免循环依赖。您需要使用 Files.inboundAdaper() 而不是第一个 lambda。

查看迁移指南:https://github.com/spring-projects/spring-integration/wiki/Spring-Integration-4.3-to-5.0-Migration-Guide

此外,请在 GitHub 上提出问题以修复文档中的示例:https://docs.spring.io/spring-integration/docs/5.1.3.BUILD-SNAPSHOT/reference/html/files.html#_configuring_with_the_java_dsl_8

查看测试用例中的示例配置:https://github.com/spring-projects/spring-integration/blob/master/spring-integration-file/src/test/java/org/springframework/integration/file/dsl/FileTests.java

此外,您还可以在示例中找到其中一些:https://github.com/spring-projects/spring-integration-samples