代码之家  ›  专栏  ›  技术社区  ›  fmdaboville

Spring集成:处理参数中给定的文件

  •  1
  • fmdaboville  · 技术社区  · 7 年前

    我有一个现有的Spring集成应用程序,它使用InboundChannelAdapter处理来自FTP的文件。我想将Spring boot插入此应用程序,以便现在像这样使用它:

    java -jar app.jar <filetohandlepath>

    因此,应用程序从这个命令开始,并在处理结束时停止。但我的问题是如何运行现有频道( ServiceActivator )要处理此文件?

    • 我可以使用 InboundChannelAdapter ,但我认为 poller 可能是个问题
    • 也许是 Gateway ?但我不认为这是一个解决方案
    • 或者我需要手动生成并发送消息?

    那么Spring Boot如何处理这个问题呢?我需要将消息构建到main方法中,或者在另一个带有scan的类中?

    我只需要知道设计我的应用程序的最佳方法。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Artem Bilan    7 年前

    FTP入站通道适配器将远程文件轮询为本地文件,并将其作为消息有效负载发送到所述服务激活器的某个通道中。当然,您可以手动将消息发送到具有该服务激活器订阅者接受的有效负载的同一通道。是的,您可以使用 @MessagingGateway 将消息传递问题与代码分离。或者你可以依靠 MessagingTemplate 及其 convertAndSend() API。任何方便的方式都可以接受: https://docs.spring.io/spring-integration/docs/5.0.4.RELEASE/reference/html/messaging-endpoints-chapter.html#gateway

    至于Spring引导和命令行参数,您肯定可以查看 CommandLineRunner : https://docs.spring.io/spring-boot/docs/2.0.1.RELEASE/reference/htmlsingle/#boot-features-command-line-runner