我需要访问多个JMS队列,并根据我们得到的事件执行所需的操作。这是在Spring Boot项目上完成的。谁能帮忙
zfau1000 回答:如何在JAVA中使用单个消耗访问多个JMS队列
您可以在Spring启动中配置不同的@JmsListener,它将从您已配置的相应队列中接收消息。
@JmsListener(destination = "${abcQueueName}",containerFactory = "abcQueueListenerFactory")
public void receiveQuery(@Payload Test test,@Headers MessageHeaders headers,Message message,Session sessionQuery) {
}
@Bean(name = "abcQueueListenerFactory")
public JmsListenerContainerFactory<?> testQueueListenerFactory(ConnectionFactory connectionFactory,DefaultJmsListenerContainerFactoryConfigurer configurer) {
DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
factory.setPubSubDomain(false);
factory.setSessionTransacted(true);
factory.setConcurrency(concurrency + "-" + maxConcurrency);
factory.setReceiveTimeout(Long.valueOf(receiveTimeout));
factory.setConnectionFactory(connectionFactory);
factory.setMessageConverter(jsonMessageConverter);
factory.setSessionAcknowledgeMode(Session.AUTO_ACKNOWLEDGE);
configurer.configure(factory,connectionFactory);
return factory;
}