RabbitMQ的注解使用

1. 手动在 RabbitMQ 管理界面创建 myQueue队列

  1. 发送者代码:
 @Autowired
    private AmqpTemplate amqpTemplate;

    public void send(){
        String msg = "mqsender send ..." + new Date();
        amqpTemplate.convertAndSend("myQueue", msg);
    }

  1. 接收者代码
    /**
     * 需要手动在RabbitMQ management 界面下创建一个队列 myQueue
     * @param msg
     */
    @RabbitListener(queues = "myQueue")
    public void receive(String msg){
        log.info("mqReceive = {}" , msg );
    }

2. 通过注解自动创建 myQueue 队列

    /**
     *
     * @param msg
     */
    @RabbitListener(queuesToDeclare = @Queue("myQueue"))
    public void receive(String msg){
        log.info("mqReceive = {}" , msg );
    }

3. 自动创建,queue 和 exchange 绑定

     // 3. 自动创建,queue 和 exchange 绑定
    @RabbitListener(bindings = @QueueBinding(
            value = @Queue("myQueue"),
            exchange = @Exchange("myExchange")
    ))
    public void receive(String msg){
        log.info("mqReceive = {}" , msg );
    }

4. 实战模拟消息分组

/**----------- 模拟消息分组 --------------------*/
    /**
     * 数码供应商服务  接收消息
     * 消息发到交换机,交换机根据不同的key 发送到不同的队列
     */
    @RabbitListener(bindings = @QueueBinding(
            exchange = @Exchange("myOrder"),
            key = "computer",
            value = @Queue("computerOrder")
    ))
    public void receiveComputer(String msg){
        log.info(" receiveComputer service = {}" , msg );
    }
    /**
     * 水果供应商服务  接收消息
     */
    @RabbitListener(bindings = @QueueBinding(
            value = @Queue("fruitOrder"),
            key = "fruit",
            exchange = @Exchange("myOrder")
    ))
    public void receiveFruit(String msg){
        log.info(" receiveFruit service = {}" , msg );
    }
@RabbitListener(bindings = @QueueBinding(
            value = @Queue("queue002"),
            exchange = @Exchange(value = "headers-exchange", type = ExchangeTypes.HEADERS),
            arguments = {
                    @Argument(name = "key-one", value = "1"),
                    @Argument(name = "key-two", value = "2"),
                    @Argument(name = "x-match", value = "any")
            }))
    public void consumer003(String msg) {
        System.out.println("消费者===>消费<===消息message: " + msg);
    }
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值