RabbitMQ 基于Bean的方式声明队列和交换机
package org.rabbitmq.fanoutDemo.config;
import org.springframework.amqp.core.*;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class FanoutConfiguration {
@Bean
public FanoutExchange fanoutExchange() {
return ExchangeBuilder.fanoutExchange("fanoutTest").build();
}
@Bean
public Queue queueTest1() {
return QueueBuilder.durable("queueTest1").build();
}
@Bean
public Queue queueTest2() {
return QueueBuilder.durable("queueTest2").build();
}
@Bean
public Binding bindingTest1(Queue queueTest1, FanoutExchange fanoutExchange) {
return BindingBuilder.bind(queueTest1).to(fanoutExchange);
}
@Bean
public Binding bindingTest2(Queue queueTest2, FanoutExchange fanoutExchange) {
return BindingBuilder.bind(queueTest2).to(fanoutExchange);
}
}
RabbitMQ 基于注解的方式声明队列和交换机
package org.rabbitmq.fanoutDemo;
import org.springframework.amqp.rabbit.annotation.Exchange;
import org.springframework.amqp.rabbit.annotation.Queue;
import org.springframework.amqp.rabbit.annotation.QueueBinding;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;
@Component
public class DirectExchangeListener {
// 消费字符串
@RabbitListener(bindings = @QueueBinding(
value = @Queue(value = "queueTest1",declare = "true"),
exchange = @Exchange(value = "direct_logs",declare = "true"),
key = {"#"}
))
public void listen1(String message) {
System.out.println("this is queueTest1"+ message);
}
}