1、添加maven pom依赖
<!--结合消息队列-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
<version>2.0.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>2.0.6.RELEASE</version>
</dependency>
2、application.xml配置
spring:
#结合rabbitmq
rabbitmq:
host: 47.105.184.157
port: 5672
username: guest
password: guest
3、定义Rabbitmq的配置类
package com.etc.website.configuration;
import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Configuration;
/**
* 消息队列配置文件
* @author ChenDang
* @date 2020/1/22 0022
*/
@Configuration
public class RabbitConfiguration {
/**
* 创建test队列
*/
public Queue test(){
return new Queue("test");
}
}
消费者
package com.etc.website.mq;
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;
/**
* 消费者,@RabbitListener对test队列进行监听
* @author ChenDang
* @date 2020/1/22 0022
*/
@Component
@RabbitListener(queues = "test")
public class Receiver {
/**
* @RabbitHandler进行监听处理
* @param hello
*/
@RabbitHandler
public void process(String hello){
System.out.println("receive:"+hello);
}
}
生产者
package com.etc.website.mq;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.Date;
/**
* 发送者
* @author ChenDang
* @date 2020/1/22 0022
*/
@Component
public class Sender {
@Autowired
private AmqpTemplate amqpTemplate;
public void send(){
String content = "hello"+new Date();
System.out.println("send content:"+content);
//生产者会向Queue=test的队列发送一条消息
amqpTemplate.convertAndSend("test",content);
}
}
编写测试接口
@GetMapping("/rabbitmq")
public String rabbitmq(){
sender.send();
return "消息队列测试";
}
浏览完get请求
http://localhost:8080/index/rabbitmq
控制台输出生产者和消费者的数据
springcloud集成rabbitmq成功
Rabbitmq原理介绍