好的,我想出了如何让它侦听多个队列。认为与我的其他解决方案相比,可能存在一些缺点,主要是如果列出的队列不存在,则它不起作用。我最终使用了@RabbitListener完全不同的方法
@Componentpublic class EventListener { private static Logger LOG = LoggerFactory.getLogger(EventListener.class); private CountDownLatch latch = new CountDownLatch(1); @RabbitListener(queues = "myqueue") public void processPaymentMessage(Object message) { LOG.info("Message is of type: " + message.getClass().getName()); if(!(message instanceof byte[])) message = ((Message) message).getBody(); String content = new String((byte[])message, StandardCharsets.UTF_8); LOG.info("Received on myqueue: " + content); latch.countDown(); } @RabbitListener(queues = "myotherqueue") public void processOrderMessage(Object message) { LOG.info("Message is of type: " + message.getClass().getName()); if(!(message instanceof byte[])) message = ((Message) message).getBody(); String content = new String((byte[])message, StandardCharsets.UTF_8); LOG.info("Received on myotherqueue: " + content); latch.countDown(); } }在byte
[]上的整个检查都在其中,因为从命令行发送的消息看起来像什么。否则,它是org.springframework.amqp.core.Message。



