SpringAMQP创建交换机和队列

SpringAMQP提供的Exchange接口        

一基于bean注解:

一.Fanout交换机
package com.itheima.consumer.config;

import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.FanoutExchange;
import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class FanoutConfiguration {

    //生成一个fanoutExchange交互机(hmall,fanout2)
    @Bean
    public FanoutExchange fanoutExchange(){
        // ExchangeBuilder.fanoutExchange("").build();
        return new FanoutExchange("hmall.fanout2");
    }

    //生成一个新的队列fanout.queue3
    @Bean
    public Queue fanoutQueue3(){
        // QueueBuilder.durable("ff").build();
        return new Queue("fanout.queue3");
    }

    //将队列fanoutQueue3绑定到fanoutExchange交互机
    @Bean
    public Binding fanoutBinding3(Queue fanoutQueue3, FanoutExchange fanoutExchange){
        return BindingBuilder.bind(fanoutQueue3).to(fanoutExchange);
    }

    //生成一个新的队列fanout.queue4
    @Bean
    public Queue fanoutQueue4(){
        return new Queue("fanout.queue4");
    }

    //将队列fanoutQueue4绑定到fanoutExchange交互机
    @Bean
    public Binding fanoutBinding4(){
        return BindingBuilder.bind(fanoutQueue4()).to(fanoutExchange());
    }
}

二.Direct交换机

同理于Fanout交换机

package com.itheima.consumer.config;

import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.DirectExchange;
import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class DirectConfiguration {

    @Bean
    public DirectExchange directExchange(){
        return new DirectExchange("hmall.direct");
    }

    @Bean
    public Queue directQueue1(){
        return new Queue("direct.queue1");
    }

    @Bean
    public Binding directQueue1BindingRed(Queue directQueue1, DirectExchange directExchange){
        return BindingBuilder.bind(directQueue1).to(directExchange).with("red");
    }

    @Bean
    public Binding directQueue1BindingBlue(Queue directQueue1, DirectExchange directExchange){
        return BindingBuilder.bind(directQueue1).to(directExchange).with("blue");
    }

    @Bean
    public Queue directQueue2(){
        return new Queue("direct.queue2");
    }

    @Bean
    public Binding directQueue2BindingRed(Queue directQueue2, DirectExchange directExchange){
        return BindingBuilder.bind(directQueue2).to(directExchange).with("red");
    }

    @Bean
    public Binding directQueue2BindingBlue(Queue directQueue2, DirectExchange directExchange){
        return BindingBuilder.bind(directQueue2).to(directExchange).with("yellow");
    }

}

二.基于@RabbitListener注解

    @RabbitListener(bindings = @QueueBinding(
            value = @Queue(name = "direct.queue1", durable = "true"),
            exchange = @Exchange(name = "hmall.direct", type = ExchangeTypes.DIRECT),
            key = {"red", "blue"}
    ))
    public void listenDirectQueue1(String msg) throws InterruptedException {
        System.out.println("消费者1 收到了 direct.queue1的消息:【" + msg +"】");
    }

    @RabbitListener(bindings = @QueueBinding(
            value = @Queue(name = "direct.queue2", durable = "true"),
            exchange = @Exchange(name = "hmall.direct", type = ExchangeTypes.DIRECT),
            key = {"red", "yellow"}
    ))
    public void listenDirectQueue2(String msg) throws InterruptedException {
        System.out.println("消费者2 收到了 direct.queue2的消息:【" + msg +"】");
    }

相关推荐

  1. springboot声明(创建)RabbitMQ交换机队列

    2024-03-11 21:50:04       26 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-11 21:50:04       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-11 21:50:04       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-11 21:50:04       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-11 21:50:04       18 阅读

热门阅读

  1. zsh: command not found: mongo(mac版已解决)

    2024-03-11 21:50:04       18 阅读
  2. 二叉排序树(非递归15.5)

    2024-03-11 21:50:04       16 阅读
  3. 微信小程序开发常用的布局

    2024-03-11 21:50:04       19 阅读
  4. c#空闲中断接收

    2024-03-11 21:50:04       18 阅读
  5. 理论学习 消融实验

    2024-03-11 21:50:04       25 阅读
  6. 自定义注解【项目篇】

    2024-03-11 21:50:04       19 阅读
  7. 行为型模式

    2024-03-11 21:50:04       19 阅读
  8. 738. 单调递增的数字

    2024-03-11 21:50:04       22 阅读
  9. sqoop-import 详解

    2024-03-11 21:50:04       21 阅读