如何在Spring-Boot中创建DefaultMessageListenerContainer?

时间:2018-08-28 05:04:29

标签: java spring multithreading spring-boot weblogic

我是Spring-Boot的新手,并试图创建DefaultMessageListenerContainer,因此我可以使用weblogic工作管理器并以多线程方式运行多个消息侦听器。

有人可以提供一些例子吗? 到目前为止,我找到了以下解决方案,但是如何在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>

1 个答案:

答案 0 :(得分:0)

创建一个ConnectionFactory

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

    return activeMQConnectionFactory;
  }

创建一个DefaultJmsListenerContainerFactory

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

    return factory;
  }

创建您的DefaultMessageListenerContainer

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

    return orderDefaultJmsListenerContainerFactory()
        .createListenerContainer(endpoint);
  }

有关我在Spring JMS listeners上创建的这篇文章的更详细的示例结帐。