對於一個直接創建的springBoot項目工程來說,可以按照以下步驟使用rabbitmq - 添加依賴:添加rabbitMQ的依賴。 ~~~java org.springframework.boot spring-boot-starter-amqp ~~~ - 配置連接:在配置文件中配置虛擬主機、端 ...
對於一個直接創建的springBoot項目工程來說,可以按照以下步驟使用rabbitmq
- 添加依賴:添加rabbitMQ的依賴。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
- 配置連接:在配置文件中配置虛擬主機、埠號、用戶名、密碼等信息。
spring:
rabbitmq:
host: localhost
port: 5672
virtual-host: {你的虛擬主機}
username: {你的用戶名}
password: {你的密碼}
- 創建生產者:導入對應依賴後,使用rabbitTemplate,並調用convertAndSend來發送消息。
@Autowired
private RabbitTemplate rabbitTemplate;
public void sendMessage(String message) {
rabbitTemplate.convertAndSend("exchangeName", "routingKey", message);
}
來發送消息。
- 創建消費者:使用
@RabbitListener
註解在消息處理方法上,指定監聽的隊列名稱,併在方法參數中接收消息。
@RabbitListener(queues = "queueName")
public void receiveMessage(String message) {
// 處理接收到的消息
System.out.println("Received message: " + message);
}
- 編寫配置類,使用@Bean註解在對應的方法上把方法的返回值(將隊列,交換機等信息)交由spring管理。
// 交換機名稱
public static final String ITEM_TOPIC_EXCHANGE = "item_topic_exchange";
// 隊列名稱
public static final String ITEM_QUEUE = "item_queue";
//聲明交換機
@Bean
public Exchange exchange(){
return ExchangeBuilder.topicExchange(ITEM_TOPIC_EXCHANGE).durable(true).build();
}
//聲明隊列
@Bean
public Queue queue(){
return QueueBuilder.durable(ITEM_QUEUE).build();
}
//隊列綁定到交換機
@Bean
public Binding binding(Queue queue,Exchange exchange){
return BindingBuilder.bind(queue).to(exchange).with("item.#").noargs();
}
- 啟動應用程式或者寫測試類。
@Autowired
RabbitTemplate rabbitTemplate;
@Test
public void testSendMessage(){
rabbitTemplate.convertAndSend(RabbitmqConfig.ITEM_TOPIC_EXCHANGE, "item.insert", "新增商品的消息~~");
System.out.println("消息發送成功");
}