Spring integration Spring文件集成java配置

Spring integration Spring文件集成java配置,spring-integration,spring-integration-dsl,Spring Integration,Spring Integration Dsl,我想使用Spring集成来开发一个应用程序,以便执行以下操作 当文件可用时,轮询目录中的文件 将文件复制到存档目录 处理文件并将路径添加到数据库 我不知道如何配置这个,我也没有找到任何好的文档。大多数都是xml配置,我想要java配置。 我有这个代码,但这只是复制文件和删除源代码。我不知道如何处理源代码 @Bean public MessageChannel fileInputChannel() { return new DirectChannel(); }

我想使用Spring集成来开发一个应用程序,以便执行以下操作

  • 当文件可用时,轮询目录中的文件
  • 将文件复制到存档目录
  • 处理文件并将路径添加到数据库
  • 我不知道如何配置这个,我也没有找到任何好的文档。大多数都是xml配置,我想要java配置。 我有这个代码,但这只是复制文件和删除源代码。我不知道如何处理源代码

     @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;
        }
    
    @Bean
    public MessageChannel fileInputChannel(){
    返回新的DirectChannel();
    }
    @豆子
    @InboundChannelAdapter(value=“fileInputChannel”,poller=@poller(fixedDelay=“1000”))
    public MessageSource fileReadingMessageSource(){
    FileReadingMessageSource=新建FileReadingMessageSource();
    setDirectory(新文件(入站路径));
    setFilter(新的SimplePatternFileListFilter(“*.pdf”);
    source.setLoggingEnabled(true);
    返回源;
    }
    @豆子
    @ServiceActivator(inputChannel=“fileInputChannel”)
    public FileWritingMessageHandler FileWritingMessageHandler(){
    FileWritingMessageHandler FileWritingMessageHandler=新建FileWritingMessageHandler(
    新文件(出站路径);
    fileWritingMessageHandler.setAutoCreateDirectory(true);
    fileWritingMessageHandler.setExpectReply(false);
    fileWritingMessageHandler.setDeleteSourceFiles(true);
    返回fileWritingMessageHandler;
    }
    
    您有特定的业务需求,即使我们有Java的示例,也不意味着您的用例将在这里介绍。我们完全愿意为Oleg在评论中提到的样本项目做出贡献,但这已经取决于你们了,社区。我们在这里真的无法猜测样本中要涵盖的所有领域用例

    对于您的请求,某些解决方案可能如下所示:

  • fileInputChannel
    必须是一个
    PublishSubscribeChandler
    ,现有的
    fileWritingMessageHandler()
    作为第二个订户
  • 您添加了第一个订阅者(
    @ServiceActivator
    )来处理该文件,正如您所说的存储在数据库中,它肯定会成为此文件之后的下一个
    @ServiceActivator
  • 请参阅与所述的
    @ServiceActivator
    一起提供的
    @Order
    注释,以确保您的订阅者以正确的顺序订阅。由于确实要移动文件,因此在发送到
    FileWritingMessageHandler
    之前对其进行处理非常重要

    这个任务也可以使用JavaDSL完成,甚至其代码可能要短得多


    我想请您先阅读文档,让自己熟悉集成概念和原则。

    您有特定的业务需求,即使我们有Java示例,但这并不意味着您的用例将在这里介绍。我们完全愿意为Oleg在评论中提到的样本项目做出贡献,但这已经取决于你们了,社区。我们在这里真的无法猜测样本中要涵盖的所有领域用例

    对于您的请求,某些解决方案可能如下所示:

  • fileInputChannel
    必须是一个
    PublishSubscribeChandler
    ,现有的
    fileWritingMessageHandler()
    作为第二个订户
  • 您添加了第一个订阅者(
    @ServiceActivator
    )来处理该文件,正如您所说的存储在数据库中,它肯定会成为此文件之后的下一个
    @ServiceActivator
  • 请参阅与所述的
    @ServiceActivator
    一起提供的
    @Order
    注释,以确保您的订阅者以正确的顺序订阅。由于确实要移动文件,因此在发送到
    FileWritingMessageHandler
    之前对其进行处理非常重要

    这个任务也可以使用JavaDSL完成,甚至其代码可能要短得多


    我想请您从开始阅读文档,以熟悉集成概念和原则。

    您看过SI示例吗?我是说有很多文件和样品。在提供的链接中,您可以找到从简单的单个组件到构成整个流程的示例应用程序分类的所有示例。例如,非常接近您的用例。您看过SI示例吗?我是说有很多文件和样品。在提供的链接中,您可以找到从简单的单个组件到构成整个流程的示例应用程序分类的所有示例。例如,它非常接近您的用例。