我需要动态地声明新的队列并将其分配给我现有的侦听器。
@Component
public class AccountListener {
@RabbitListener(id = "foobar")
public String foo(String a) {
System.out.println(a);
return a + "xxx";
}
}
我可以用
RabbitListenerEndpointRegistry
@Autowired
private AmqpAdmin rabbit;
@Autowired
private RabbitListenerEndpointRegistry registry;
public void exposeQueue(String queueName) throws Exception {
Queue queue = new Queue(queueName, false);
rabbit.declareQueue(queue);
SimpleMessageListenerContainer listener = (SimpleMessageListenerContainer) registry.getListenerContainer("foobar");
}