Springboot整合RabbitMQ

服务器安装docker的镜像docker pull registry.docker-cn.com/library/rabbitmq:3-managementdocker run -d -p 5672:5672 -p 15672:15672 --name myrabbitmq ID * 自动配置 * 1、RabbitAutoConfiguration * 2、有自动配置了连接工厂Con...
摘要由CSDN通过智能技术生成

服务器安装docker的镜像

docker pull registry.docker-cn.com/library/rabbitmq:3-management

docker run -d -p 5672:5672 -p 15672:15672 --name myrabbitmq ID
 * 自动配置
 * 1、RabbitAutoConfiguration
 * 2、有自动配置了连接工厂ConnectionFactory
 * 3、RabbitProperties封装了 RabbitMQ的配置
 * 4、RabbitTemplate:给RabbitMQ发送和接收消息
 * 5、AmqpAdmin:RabbitMQ的系统管理功能组件
 *      创建和删除exchange,queue,
 * 6、RabbitListener和EnableRabbit监听消息队列的内容
 * @param args
 */
RabbitMQ的配置文件
spring.rabbitmq.host=47.100.42.0
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
spring.rabbitmq.port=5672
.........................................................
单播以及接收数据
//单播
    @Test
    public void context(){
        //message需要自己构造一个;定义消息体内容和消息头
        //rabbitTemplate.send(exchange,routekey,message);
        //只需要传入要发送的对象,自动序列化发送给RabbitMQ
        //rabbitTemplate.convertAndSend();
        Map<String,Object> map = new HashMap<String,Object>();
        map.put("msg","1111111111111");
        map.put("data", Arrays.asList("Hello",123,true));
        //对象被默认序列化以后发送
        rabbitTemplate.convertAndSend("exchange.direct","#.news",map);
        //发送Book类
        rabbitTemplate.convertAndSend("exchange.direct","#.news",new Book("demo","demo"));
    }

    //接收数据
    @Test
    public void receive(){
        Object o = rabbitTemplate.receiveAndConvert("#.news");
        System.out.println(o.getClass());
        System.out.println(o);
    }
广播
//广播
    @Test
    public void sendMsg(){
        rabbitTemplate.convertAndSend("exchange.fanout","",new Book("demo","demo"));
    }
RabbitMQ的监听机制
@RabbitListener(queues = "#.news")
    public void receive(Book book){
        System.out.println("receive"+book);
    }
    //接收消息
    @RabbitListener(queues = "")
    public void receiveMessage(Message message){
        System.out.println(message.getBody());
        System.out.println(message.getMessageProperties());
    }
	
	//开启基于注解的RabbitMQ模式
@EnableRabbit
public class DemoApplication {
AmqpAdmin:RabbitMQ的系统管理功能组件
 @Test
    public void createExchange(){

        amqpAdmin.declareExchange(new DirectExchange("exchange_test"));
        System.out.println("create exchange success......");

        amqpAdmin.declareQueue(new Queue("queue_test",true));
        System.out.println("create queue success......");

        //创建绑定规则
        amqpAdmin.declareBinding(new Binding("queue_test", Binding.DestinationType.QUEUE,"exchange_test","amqp",null));


    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值