簡體   English   中英

如何使用 springboot 將消息發布到兔子 MQ(運行時提供隊列詳細信息)?

[英]How to publish message to rabbit MQ(queue details provided at runtime) using springboot?

如何將消息發布到在運行時提供隊列詳細信息的rabbit MQ。

有很多關於發布消息的文章,但在應用程序屬性文件中提到了隊列。

如果你的意思是在運行時設置的隊列名稱,您可以發送郵件使用RabbitTemplate類和convertAndSend方法。 參考

假設你的類是這樣的:

@Component
public class MessageSender {
    @Autowired
    private RabbitTemplate rabbitTemplate;

    ...

} 

您可以添加這些方法:

public void sendToQueue(String queueName) {
    rabbitTemplate.convertAndSend(queueName, "Hello from Spring!");
}
    
public void sendToExchange(String exchangeName, String routingKey) {
    rabbitTemplate.convertAndSend(exchangeName, routingKey, "Hi exchange!");
}

但是,如果您指的是在運行時創建隊列本身,那么您需要一個AmqpAdmin作為@Autowired (推薦)或在每次調用中定義它。

@Autowired
private AmqpAdmin amqpAdmin;

在任何方法中,您都可以創建一個帶有所需參數的 Queue 對象(名稱、持久性......其他任何東西)

像這樣的東西:

Queue queue = new Queue(queueName, ...);
amqpAdmin.declareQueue(queue);

如果你想使用@Autowired你必須像這樣在@Bean創建amqpAdmin

@Bean
public AmqpAdmin amqpAdmin() {
    return new RabbitAdmin(yourConnectionFactory);
}

也解釋here

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM