SpringBoot 消息队列RabbitMQ在代码中声明 交换机 与 队列使用注解创建
创建Fanout交换机
@Configuration
public class FanoutConfig {
@Bean
public FanoutExchange fanoutExchange(){
return new FanoutExchange("csdn.fanout");
//交换机名称
}
}
创建队列
@Bean
public Queue fanoutQueue3(){
return new Queue("csdn.queue");
}
绑定队列
将创建的方法传入即可交换机与队列进行绑定。
@Bean
public Binding fanoutBinding(Queue queue){
return BindingBuilder.bind(fanoutQueue()).to(fanoutExchange());
}
以上方法如果交换机和队列比较多会非常的不灵活
注解声明
可以通过注解在消费者当中进行声明
生产者
private final RabbitTemplate rabbitTemplate;
@GetMapping("/putRecord") //插入记录
public Result userMessage(){
rabbitTemplate.convertAndSend("csdn.fanout","a","我是发送者");
return Result.success("操作成功",null);
}
消费者
@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");
}
}
csdn.queue
ctrl+p 查看提示