SpringBoot整合RabbitMq环境搭建以及使用rabbitTemplate测试连通性

首先是环境搭建问题,按下面图片所示进行勾选模块:

在这里插入图片描述

然后配置一下消息中间件的服务ip以及账号密码:

applicationContext.properties:

spring.rabbitmq.host=192.168.31.53
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest

环境一切都准备好了!!
下面开始测试,本文用 rabbitTemplate来说明问题。

    @Autowired
    RabbitTemplate rabbitTemplate;

    @Test
    void sent() {//发送消息
        //message需要自己构建,定义消息体内容和消息头
//        rabbitTemplate.send(exchange,routekey,message);
        //object默认当成消息体,只需要传入要发送的对象,自动序列化发送给rabbitmq
//        rabbitTemplate.convertAndSend(exchange,routekey,object);
        Map<String,Object> map = new HashMap<>();
        map.put("msg","这是一个消息");
        map.put("data", Arrays.asList("hello",123,true));
        //对象被默认序列化之后发送出去
        rabbitTemplate.convertAndSend("exchange.direct","lzl.news",map);
    }

执行了上面的方法,发现队列lzl.news可以接收到消息,但是消息的内容是我们看不懂的二进制码:
在这里插入图片描述
想要转化成我们能看懂的json字符串形式,只需要将下面的bean加入容器:

@Bean
    public MessageConverter messageConverter(){
        return new Jackson2JsonMessageConverter();
    }

再次执行sent方法,这次发现lzl.news队列中已经收到了我们期待的json数据:在这里插入图片描述

至于接受方法,无论队列存储的二进制格式或者是json,他都会原样(发送什么就接收什么)的就收:

    @Test
    public void receive(){
        Object o = rabbitTemplate.receiveAndConvert("lzl.news");
        System.out.println(o.getClass());
        System.out.println(o);
    }

执行的结果如下:
在这里插入图片描述

如何创建队列,转化器,以及绑定规则:

 	@Autowired
    AmqpAdmin amqpAdmin;

    @Test
    public void createExchange(){
        //创建交换器
        amqpAdmin.declareExchange(new DirectExchange("amqpadmin.exchange"));
        System.out.println("交换器创建完成!");
        
        //创建队列
        amqpAdmin.declareQueue(new Queue("amqpadmin.queue",true));//ture代表使用持久化
        System.out.println("队列创建完毕!");
        
        //实现绑定规则
        amqpAdmin.declareBinding(new Binding("amqpadmin.queue",Binding.DestinationType.QUEUE,"amqpadmin.exchange","amqp.haha",null));
        System.out.println("绑定规则指定完毕!");
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

键盘歌唱家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值