@RabbitListener注解的消费者监听方法,默认有几个可以自动注入的参数对象:
-
org.springframework.amqp.core.Message
消息原始对象 -
com.rabbitmq.client.Channel
接收消息所所在的channel -
org.springframework.messaging.Message
amqp的原始消息对象转换为messaging后的消息对象,该消息包含自定义消息头和标准的amqp消息头
此外,非以上参数,自定义参数对象可以通过@Header/@Headers/@Payload标注为消息头或消息体接受对象。
@SendTo注解,标注方法将返回对象包装为Message对象发送到指定的队列。
- 当不指定@SendTo的value值时,将通过默认exchange发送到默认队列
- 当指定@SendTo的value值时,将通过默认或指定的exchange发送到指定队列
- 对于value值取值为:exchange/routingkey形式
- a/b代表exchange为a, routingkey为b
- 仅a代表,routingkey为a
@SendTo只在收到的Message没有replyTo属性时使用