rabbittemplate发送有属性的消息
时间: 2023-08-06 10:06:50 浏览: 87
【SpringBoot MQ 系列】RabbitMq 消息发送基本使用姿势
可以使用RabbitTemplate发送带有属性的消息。具体步骤如下:
1. 创建一个消息对象,并设置属性:
```
MyMessage message = new MyMessage();
message.setContent("Hello, RabbitMQ!");
message.setPriority(1);
```
2. 使用RabbitTemplate的convertAndSend方法发送消息,并设置MessagePostProcessor:
```
MessagePostProcessor messagePostProcessor = new MessagePostProcessor() {
@Override
public Message postProcessMessage(Message message) throws AmqpException {
message.getMessageProperties().setPriority(message.getPriority());
return message;
}
};
rabbitTemplate.convertAndSend("myExchange", "myRoutingKey", message, messagePostProcessor);
```
3. 在接收消息的地方,获取消息属性:
```
@RabbitListener(queues = "myQueue")
public void handleMessage(MyMessage message, @Header(AmqpHeaders.PRIORITY) int priority) {
System.out.println("Content: " + message.getContent());
System.out.println("Priority: " + priority);
}
```
注意:在发送和接收消息时,需要使用相同的消息对象类。另外,需要对消息进行序列化和反序列化。如果使用JSON序列化,可以使用Jackson2JsonMessageConverter。如果使用Java对象序列化,可以使用DefaultSerializer。在Spring Boot中,默认使用Jackson2JsonMessageConverter。
阅读全文