SpringBoot 消息队列RabbitMQ在代码中声明 交换机 与 队列使用注解创建

创建Fanout交换机

java 复制代码
@Configuration
public class FanoutConfig {
    @Bean
    public FanoutExchange fanoutExchange(){
        return  new FanoutExchange("csdn.fanout");
        //交换机名称
    }
}

创建队列

java 复制代码
  @Bean
    public Queue fanoutQueue3(){
        return  new Queue("csdn.queue");
    }

绑定队列

将创建的方法传入即可交换机与队列进行绑定。

java 复制代码
@Bean
public Binding fanoutBinding(Queue queue){
    return  BindingBuilder.bind(fanoutQueue()).to(fanoutExchange());
}

以上方法如果交换机和队列比较多会非常的不灵活


注解声明

可以通过注解在消费者当中进行声明

生产者

java 复制代码
private  final RabbitTemplate rabbitTemplate;
@GetMapping("/putRecord") //插入记录
public Result userMessage(){
    rabbitTemplate.convertAndSend("csdn.fanout","a","我是发送者");
    return  Result.success("操作成功",null);
}

消费者

java 复制代码
@Component
public class RecordQueues {


	//使用注解创建交换机和队列并且进行绑定
    @RabbitListener( 
            bindings = @QueueBinding(
            value = @Queue("csdn.queue"),
            exchange = @Exchange(name = "csdn.fanout",type = ExchangeTypes.DIRECT),
            key = {"a","b"}
    ))
    public void a(){
        System.out.println("csdn.queue");
    }


    }
java 复制代码
csdn.queue

ctrl+p 查看提示

相关推荐
梦想画家4 分钟前
Scrapy进阶实践指南:从脚本运行到分布式爬取
分布式·scrapy·数据工程
开开心心就好4 分钟前
Word图片格式调整与转换工具
java·javascript·spring·eclipse·pdf·word·excel
CGG9235 分钟前
【单例模式】
android·java·单例模式
苦学编程的谢36 分钟前
多线程代码案例-1 单例模式
java·开发语言·单例模式
yaoxin52112340 分钟前
80. Java 枚举类 - 使用枚举实现单例模式
java·开发语言·单例模式
东阳马生架构1 小时前
Seata源码—5.全局事务的创建与返回处理二
分布式·seata·分布式事务
夏季疯1 小时前
学习笔记:黑马程序员JavaWeb开发教程(2025.4.7)
java·笔记·学习
卡戎-caryon1 小时前
【C++】15.并发支持库
java·linux·开发语言·c++·多线程
张伯毅2 小时前
Flink SQL 将kafka topic的数据写到另外一个topic里面
sql·flink·kafka
头发那是一根不剩了2 小时前
怎么用idea分析hprof文件定位JVM内存问题
java·jvm