简体   繁体   English

如何在 Spring-Boot 中创建 DefaultMessageListenerContainer?

[英]How to create DefaultMessageListenerContainer in Spring-Boot?

I am new to Spring-Boot and trying to create DefaultMessageListenerContainer so I can use the weblogic workmanager and run several message listeners in multithreaded fashion.我是 Spring-Boot 的新手并尝试创建 DefaultMessageListenerContainer,以便我可以使用 weblogic workmanager 并以多线程方式运行多个消息侦听器。

Can someone please provide some example.有人可以提供一些例子。 So far, I found the below solution but how do I implement this in Spring-Boot?到目前为止,我找到了以下解决方案,但是如何在 Spring-Boot 中实现呢?

<bean class="org.springframework.jms.listener.SimpleMessageListenerContainer">
    <property name="connectionFactory" ref="connectionFactory"/>
    <property name="destination" ref="destination"/>
    <property name="messageListener" ref="receiver"/>
    <property name="taskExecutor" ref="taskExecutor"/>
</bean>

Create a ConnectionFactory :创建一个ConnectionFactory

  @Bean
  public ActiveMQConnectionFactory receiverActiveMQConnectionFactory() {
    ActiveMQConnectionFactory activeMQConnectionFactory =
        new ActiveMQConnectionFactory();
    activeMQConnectionFactory.setBrokerURL("yourBrokerUrl");

    return activeMQConnectionFactory;
  }

Create a DefaultJmsListenerContainerFactory :创建一个DefaultJmsListenerContainerFactory

  @Bean
  public DefaultJmsListenerContainerFactory orderDefaultJmsListenerContainerFactory() {
    DefaultJmsListenerContainerFactory factory =
        new DefaultJmsListenerContainerFactory();
    factory
        .setConnectionFactory(receiverActiveMQConnectionFactory());
    factory.setConcurrency("3-10");

    return factory;
  }

Create your DefaultMessageListenerContainer :创建您的DefaultMessageListenerContainer

  @Bean
  public DefaultMessageListenerContainer orderMessageListenerContainer() {
    SimpleJmsListenerEndpoint endpoint =
        new SimpleJmsListenerEndpoint();
    endpoint.setMessageListener(new YourMessageListener());
    endpoint.setDestination("yourDestination");

    return orderDefaultJmsListenerContainerFactory()
        .createListenerContainer(endpoint);
  }

For a more detailed example checkout this post I created on Spring JMS listeners .有关更详细的示例,请查看我在Spring JMS listeners上创建的这篇文章。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM