【问题标题】:How to dynamically create multiple jms message driven channel adapter based on configuration如何根据配置动态创建多个jms消息驱动的通道适配器
【发布时间】:2018-05-24 20:57:41
【问题描述】:

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

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

在此期间,我使用 java 8 和 spring 4.3.4

感谢任何帮助!

【问题讨论】:

标签: java spring-integration


【解决方案1】:

为此,我们实现了Dynamic Flows Registration

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

IntegrationFlowContext 也可用于 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();

【讨论】:

  • 您好 Artem,您能否建议我们如何将标头丰富器添加到上述流程中,我希望每个消息驱动的适配器通道都需要单独的出站通道来放置 jms 消息。我们是否也需要动态创建消息通道?如果是这样,如何将消息通道动态添加到我的上下文中。
  • 为什么你从答案中接受了!这不是 StackOverflow 的工作方式。我相信我回答了你原来的问题。标头丰富器值得拥有自己的 SO 线程。更重要的是,这里是一个假期,所以我没有上网。请研究如何处理问题的 SO 政策
  • 好的.. 已接受答案。让标题丰富器部分符合我的要求。感谢您的回复。
猜你喜欢
  • 2011-04-29
  • 1970-01-01
  • 2016-03-25
  • 1970-01-01
  • 1970-01-01
  • 2016-11-18
  • 2021-03-20
  • 2017-09-18
  • 2014-01-23
相关资源
最近更新 更多