springboot + rabbitmq routing模式
配置类
@Configuration
public class RabbitMqConfig3 {
@Bean
public Queue queueOne(){
return new Queue("queueOne");
}
@Bean
public Queue queueTwo(){
return new Queue("queueTwo");
}
@Bean
public DirectExchange directExchange(){
return new DirectExchange("directExchange");
}
@Bean
public Binding queueOneBinding(){
return BindingBuilder.bind(queueOne()).to(directExchange()).with("one");
}
@Bean
public Binding queueTwoBinding(){
return BindingBuilder.bind(queueTwo()).to(directExchange()).with("two");
}
@Bean
public Binding queueThreeBinding(){
return BindingBuilder.bind(queueTwo()).to(directExchange()).with("three");
}
}
发送消息 - 生产者
@Service
public class RabbitMqService3 {
@Autowired
RabbitTemplate rabbitTemplate;
public void send(String routingKey){
rabbitTemplate.convertAndSend("directExchange",routingKey,"value:" + routingKey);
}
}
接收消息 - 消费者
@Component
public class RabbitMqComponent3 {
@RabbitListener(queues = "queueOne")
public void listerQueueOne(String message){
System.out.print("queueOne" + message);
}
@RabbitListener(queues = "queueTwo")
public void listerQueueTwo(String message){
System.out.print("queueTwo" + message);
}
}