第一步:先创建两个工程,一个用于发送消息,一个用于接收消息
rabbitmq-sender(消息发送工程) rabbitmq-receiver(消息接收工程)
第二步:在两个工程当中的pom中添加如下内容,其实两个工程都是一样的,但是为了更直观的看到和springboot的整合,所以我选择做了两个工程,发送工程和接收工程都是可以反转的。
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
<scope>true</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- 添加springboot对amqp的支持 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
</dependencies>
第三步:在application文件中添加配置内容,其他的springboot的内容可以自己选择是否加上,Rabbit没有安装的可以看我的上一篇帖子先安装rabbitMq服务先
spring.rabbitmq.host=*******
spring.rabbitmq.port=****
spring.rabbitmq.username=***
spring.rabbitmq.password=***
第四步:我们先从最基本的消息队列玩起,新建一个叫sendrConf的类,代码结构你就按照我的截图来就OK了,在类当中加上
@Configuration注解,然后新建一个初始化队列的bena方法,返回的就是队列的名称:queue,然后创建一个springboot的启动类,然后启动工程,如果没有其他的情况下,登录你的rabbitMQ的管理端的Queues的列表中会新增一个queue的队列,如下两图
第五步:已经在MQ的服务器上面创建了这个队列,消费者该怎么去监听这个队列的消息了,其实很简单了
第六步:已经监听了消息,我们又怎么发送消息了,如下图,先定义一个MQ的模板类
AmqpTemplate 然后调用它的convertAndSend 方法 第一个参数是队列名称 第二个是消息内容
第七步:启动消费者工程,然后在生产者工程中创建一个test方法,如下图,然后注入刚才的发送的类,直接调用发送方法
第八步:切换到消费者的控制台,会出现如下信息,代表消费者已经接收到了生产者发送的消息