我有一些我想从以前设置的消息头中读取的属性。我这样做了:
Delivery delivery = consumer.nextDelivery();
Map<String, Object> headers = delivery.getProperties().getHeaders();
Run Code Online (Sandbox Code Playgroud)
问题是,标题有奇怪的类型 - 例如 LongString。是否有任何帮助类可以让我轻松地将标题转换为更有用的东西?
您必须在消息中添加标头:
MessageProperties props = MessagePropertiesBuilder.newInstance().setContentType(MessageProperties.CONTENT_TYPE_JSON).build();
props.setHeader("headerKey1", "headerValue1");
Message msg = new Message("{'body':'value1','body2':value2}".getBytes(), props);
rabbitTemplate.send("exchange.direct.one", new String(), msg);
Run Code Online (Sandbox Code Playgroud)
要读取从 Rabbit 队列入站的消息的标头:
import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessageListener;
public class MessagesHandler implements MessageListener {
public void onMessage(Message message) {
Map<String, Object> headers = message.getMessageProperties().getHeaders();
for (Map.Entry<String, Object> header : headers.entrySet())
{
System.out.println(header.getKey() + " : " + header.getValue());
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6491 次 |
| 最近记录: |