当前位置: 首页 > 知识库问答 >
问题:

Spring集成DSL动态入站通道

杜俊晤
2023-03-14

可以在运行时向spring integration dsl注册MessageSources吗?

在我的例子中,我想创建多个FileReadingMessageSources(基于UI的输入),然后将有效负载发送到特定的通道/jms路由(从元数据或用户输入读取)

另一个问题是,是否可以动态注册IntegrationFlows?

共有1个答案

宋华美
2023-03-14

这有点棘手,需要一些Spring基础设施知识,但是的,这是可能的:

@Service
public static class MyService {

    @Autowired
    private AutowireCapableBeanFactory beanFactory;

    @Autowired
    @Qualifier("dynamicAdaptersResult")
    PollableChannel dynamicAdaptersResult;

    public void pollDirectories(File... directories) {
        for (File directory : directories) {
            StandardIntegrationFlow integrationFlow = IntegrationFlows
                    .from(s -> s.file(directory),
                            e -> e.poller(p -> p.fixedDelay(1000))
                                    .id(directory.getName() + ".adapter"))
                    .transform(Transformers.fileToString(),
                            e -> e.id(directory.getName() + ".transformer"))
                    .channel(this.dynamicAdaptersResult)
                    .get();
            this.beanFactory.initializeBean(integrationFlow, directory.getName());
            this.beanFactory.getBean(directory.getName() + ".transformer", Lifecycle.class).start();
            this.beanFactory.getBean(directory.getName() + ".adapter", Lifecycle.class).start();
        }
    }

}

请调查我的样品,让我知道你不清楚的地方。

 类似资料:
  • 我尝试使用以下代码,得到了回应:状态:405方法不允许。这是我的Http请求:http://localhost:8090/services/test?name=test.代码或http请求有什么问题?

  • 我正在尝试将spring集成配置为向队列发送消息,然后接收消息,即非常简单的事情: 我认为解耦所必需的是在流程的两端都有一个消息网关。因此,我的第一次尝试(有效)如下所示: 其中MessageReceiverHandler()是扩展AbstractMessageHandler的bean。 所以上面我们有一个用于出站消息的消息网关。我假设我们也应该有一个用于入站消息的网关,允许我们将传入消息处理与应

  • 考虑使用Spring集成进行动态入站/出站配置。使用我们的系统的客户可能有n个,每个客户都有自己的入站FTP/webservice配置,以便将文件拉入我们的系统进行处理。同样,在处理完这些数据之后,每个客户都可以进行出站FTP/webservice配置,需要在其中推送报告(最终结果)。spring集成是否适合这种情况?如果是的话,请你推荐或指出其中的任何一个例子。Webservice包括REST和

  • 我正在尝试构建一个集成解决方案,其中 我的outboundgateway定义为 请求工厂在哪里 快乐之路运行良好,我面临的问题是不太快乐的道路。 当Api调用返回错误响应时。转换(exetrnaldto到dto)失败,客户端获得500 我想把error resposne json也翻译成我的json 我如何处理错误情况 我的问题是: 如何处理错误。 在错误条件下如何停止流不转换 如何将状态代码从出

  • 问题内容: 入站和出站通道适配器之间的根本区别是什么? 任何示例都将非常有帮助。 我已经查看过Spring文档,这种“方向性”的区别对我来说还不清楚。我支持配置了outbound-channel-adapter的应用程序,但是我发现使用 出站 标签可以直观地了解行为计数器。该适配器获取一个外部文件,然后 将其 引入应用程序中, 在 该应用程序中我们解析文件并保留数据。 这类似于这个问题,但是我想更

  • 我试图将从Quickfix读取消息(读取修复消息)配置到spring集成中。我知道我可以使用入站通道适配器从外部源(如QuickFix)读取数据。您能提供如何编写事件驱动入站通道适配器的示例吗?我有以下配置不起作用