大家好,又见面了,我是你们的朋友全栈君。
首先需要搭建一个RabbitMQ的服务,我是在docker跑了一个rabbitMQ的服务,
docker的命令语句
docker run --name rabbit -P -d rabbitmq:3-management
映射出来的端口号如下图
rabbitMQ这里我就不多讲了,直接上代码
1.首先需要创建SpringBoot项目,添加pom依赖。
创建SpringBoot项目在之前的博客中我已经讲过了下面是链接,大家可以看一下
https://blog.csdn.net/lp840312696/article/details/82392231
需要在创建好的SpringBoot项目中添加rabbitMQ的pom依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
2.向application.properties文件中添加配置
#rabbitMQ的 5672 端口
spring.rabbitmq.addresses=192.168.31.199:32771
#用户名密码
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
spring.rabbitmq.virtual-host=/
spring.rabbitmq.connection-timeout=15000
3.创建实体对象
如果大家没有@Data注解,需要创建属性的get和set方法。
package com.youyou.entity;
import lombok.Data;
import java.io.Serializable;
@Data
public class Order implements Serializable {
private String id;
private String name;
private String messageId;
}
注意:一定要实现Serializable接口
4.创建向rabbitMQ中发送数据的类(核心)
package com.youyou.producer;
import com.youyou.entity.Order;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.amqp.rabbit.support.CorrelationData;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* 发送订单的类
*/
@Component
public class OrderSend {
@Autowired
private RabbitTemplate rabbitTemplate;
public void send (Order order) throws Exception{
CorrelationData correlationData = new CorrelationData();
correlationData.setId(order.getMessageId());
rabbitTemplate.convertAndSend("order-exchange" //交换机
,"order.abc" //路由键
,order //发送数据
,correlationData); //消息唯一id
}
}
5.配置rabbitMQ的交换机和路由键
添加 一个rabbitMQ交换机
添加rabbitMQ队列
到目前为止rabbitMQ的配置整合已经完成。就是这么简单
6.测试
package com.youyou.worldmq;
import com.youyou.entity.Order;
import com.youyou.producer.OrderSend;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.UUID;
@RunWith(SpringRunner.class)
@SpringBootTest
public class MQApplicationTests {
@Autowired
private OrderSend orderSend;
@Test
public void send() throws Exception {
Order order = new Order();
order.setId("2018100100001");
order.setName("测试订单");
order.setMessageId(System.currentTimeMillis()+"$" + UUID.randomUUID().toString());
orderSend.send(order);
}
}
执行之后可以在rabbitMQ中看到是否收到数据
我这里是一共发了两条。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/106470.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...