【问题标题】:Spring file integration java configSpring文件集成java配置
【发布时间】:2020-01-24 07:15:52
【问题描述】:

我想使用 Spring 集成来开发一个应用程序来做以下事情

  1. 在可用时轮询目录中的文件。
  2. 将文件复制到存档目录
  3. 处理文件并将路径添加到数据库。

我不确定如何配置它,也找不到任何好的文档。其中大多数是 xml 中的配置,我想要 java config。 我有这段代码,但这只是复制文件并删除源。我不知道如何处理源代码。

 @Bean
    public MessageChannel fileInputChannel() {
        return new DirectChannel();
    }
    @Bean
    @InboundChannelAdapter(value = "fileInputChannel", poller = @Poller(fixedDelay = "1000"))
    public MessageSource<File> fileReadingMessageSource() {
        FileReadingMessageSource source = new FileReadingMessageSource();
        source.setDirectory(new File(INBOUND_PATH));
        source.setFilter(new SimplePatternFileListFilter("*.pdf"));

        source.setLoggingEnabled(true);
        return source;
    }


    @Bean
    @ServiceActivator(inputChannel = "fileInputChannel")
    public FileWritingMessageHandler fileWritingMessageHandler() {


        FileWritingMessageHandler fileWritingMessageHandler = new FileWritingMessageHandler(
                new File(OUTBOUND_PATH));
        fileWritingMessageHandler.setAutoCreateDirectory(true);
        fileWritingMessageHandler.setExpectReply(false);
        fileWritingMessageHandler.setDeleteSourceFiles(true);
        return fileWritingMessageHandler;
    }

【问题讨论】:

标签: spring-integration spring-integration-dsl


【解决方案1】:

您有特定的业务需求,即使我们有 Java 示例,但这并不意味着您的用例将在其中涵盖。我们完全愿意为 Oleg 在他的 cmets 中提到的示例项目做出贡献,但这已经取决于您,社区。我们在这里真的无法猜测示例中涵盖的所有现场用例。

您的请求的一些解决方案可能是这样的:

  1. fileInputChannel 必须是PublishSubscribeChannel,您现有的fileWritingMessageHandler() 作为第二个 订阅者。
  2. 您添加了第一个订阅者 (@ServiceActivator) 来处理该文件,并且正如您所说的存储在 DB 中,这绝对可能是这个之后的下一个 @ServiceActivator

请参阅@Order 注释与提到的@ServiceActivator 一起出现,以确保您的订阅者以正确的顺序订阅。由于您确实要移动文件,因此在发送到 FileWritingMessageHandler 之前对其进行处理非常重要。

这项任务也可以使用 Java DSL 完成,甚至它的代码可能会更短。

说我会请您阅读以EIP Book 开头的文档,以熟悉集成概念和原则。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-22
    • 1970-01-01
    • 2017-01-28
    • 2013-12-31
    • 1970-01-01
    • 2015-11-08
    • 1970-01-01
    相关资源
    最近更新 更多