在Springboot项目中集成RabbitMq,并实现消息的发送和接收
在项目中集成rabbitmq
在pom.xml
中引入rabbitmq依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
在application.properties
文件中配置rabbitmq服务器地址、端口等信息:
spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=admin
spring.rabbitmq.password=secret
发送mq消息:
我们已经提前在rabbitmq中创建了名为demo_queue
的消息队列,并且这里使用default exchange
,所以我们直接使用demo_queue
名字即可直接向对应的消息队列发送消息:
@Service
public class ClientService {
@Autowired
AmqpTemplate amqpTemplate;
public String sendAMessage() {
//rabbitmq
Message message = MessageBuilder.withBody("123".getBytes())
.setContentType(MessageProperties.CONTENT_TYPE_TEXT_PLAIN)
.setMessageId("123")
.setHeader("bar", "baz")
.build();
amqpTemplate.send("demo_queue", message);
return "success";
}
}
接收mq消息:
@Service
@Slf4j
public class ServiceAService {
@RabbitListener(queues="demo_queue")
public void processMessage(String content) {
log.debug("收到了一个消息:{}",content);
}
}
完。