Spring Boot消费RabbitMQ的消息
1.@Configuration
通过Spring Boot@Configuration进行配置,将Queue和Exchange进行绑定
@Configuration
@EnableRabbit
public class RabbitMqConfig {
@Bean
Queue queueMessage(){
return new Queue("message");
}
@Bean
TopicExchange exchange() {
return new TopicExchange("exchange");
}
@Bean
Binding bindingExchangeMessage() {
//绑定到exchange,routeKey 设置为topic.#
return BindingBuilder.bind(this.queueMessage()).to(this.exchange()).with("topic.#");
}
}
消费消息
@Service
public class CustomerService {
@RabbitListener(queues = {"message"})
public void processMessage(String msg) {
System.out.println("message: " + msg);
}
}
2.@RabbitListener
使用@RabbitListener进行绑定
@Service
public class CustomerService {
@RabbitListener(bindings = {@QueueBinding(value = @Queue(value = "message2"),
exchange = @Exchange(value = "exchange",type = "topic"),key = "dic.#")})
public void processD(String msg, @Headers Map<String,Object> headers) {
for(String key:headers.keySet()){
System.out.println(key+":"+headers.get(key));
}
System.out.println("message: " + msg);
}
}