首页 > 解决方案 > 如何根据配置动态创建多个jms消息驱动的通道适配器

问题描述

这是我的要求,需要配置 50 多个入站消费者来监听不同的队列。

spring 集成中是否有任何选项,我可以从配置中传递我的队列详细信息,并且应该创建相应的消费者 bean 并将其添加到我的应用程序上下文中。

之间,我使用 java 8 和 spring 4.3.4

任何帮助表示赞赏!

标签: javaspring-integration

解决方案


为此,我们实施了动态流注册

我知道您可能不使用 Spring Integration Java DSL,但是没有一种简单的方法可以在运行时注册 bean。

AnIntegrationFlowContext也可用于 Spring Integration 4.3.x:您需要包含 Spring Integration Java DSL 的扩展:https ://github.com/spring-projects/spring-integration-java-dsl/

这样你就可以在代码中做这样的事情:

 IntegrationFlow flow = f -> 
          IntegrationFlows.from(
               Jms.messageDriverChannelAdapter(this.connectionFactory)
                    .destination(aDestinationName))
                 .channel(channelToSend)
                 get();

    IntegrationFlowRegistration theFlow = this.flowContext.registration(flow).register();

推荐阅读