利用SpringAMQP依赖使用RabbitMQ
消息消费端和提供端需要引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
都需要在application.yml进行如下配置
spring:
rabbitmq:
host: 192.168.230.100 #rabbitMQ的主机名
port: 5672 #rabbitMQ的消息通信端口
username: cyk #用户名
password: 123 #密码
virtual-host: / #虚拟主机(请确保消息发布端和消费端的连接参数一致,账户拥有该虚拟主机的使用权)
消息提供端
package com.cyk.publisher;
import org.junit.jupiter.api.Test;
import org.springframework.amqp.rabbit.annotation.Queue;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class PublisherApplicationTests {
@Autowired
private RabbitTemplate rabbitTemplate;
@Test
@RabbitListener(queuesToDeclare = {@Queue("simple.queue")}) //如果不想在管理端手动创建队列,也可以使用这种方式自动创建队列
void contextLoads() {
String QueueName = "simple.queue"; //队列名字(请确该队列存在)
String message = "hello,spring amqp!"; //需要发送的消息
rabbitTemplate.convertAndSend(QueueName,message);
}
}
消息消费端
package com.cyk.consumer.listener;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;
@Component
public class SpringRabbitLIstener {
@RabbitListener(queues = "simple.queue")
void contextLoads(String msg) {
System.out.println("接收到消息:"+msg);
}
}