use*_*371 3 rabbitmq spring-amqp spring-rabbitmq
如果我在其签名中添加MessageProperties,handleMessage方法不会从队列中获取消息.如果没有MessageProperties,它可以正常工作.
如何在MessageListenerAdapter的handleMessage中获取MessageProperties?
public class EventMessageAdapter {
public void handleMessage(MessageProperties messageProperties, Event event) {
...
String id = messageProperties.getHeaders().get("key");
}
Run Code Online (Sandbox Code Playgroud)
您无法使用侦听器适配器执行此操作.
你可以使用各种签名......
@RabbitListener(queues = "foo")
public void foo(Event event, @Header("foo") String fooHeader,
@Header("bar") Integer barHeader) {...}
Run Code Online (Sandbox Code Playgroud)
要么
@RabbitListener(queues = "bar")
public void bar(Event event, Message message) {...}
Run Code Online (Sandbox Code Playgroud)
在第二种情况下,您可以通过获取所有消息属性
message.getMessageProperties().
你需要一个集装箱工厂.如果启动器在类路径上,则Spring Boot会自动为您创建一个.
| 归档时间: |
|
| 查看次数: |
2794 次 |
| 最近记录: |