RabbitMQ技术干货

Spring集成RabbitMQ-发送消息

2017-08-15  本文已影响52人  Jackie_Zheng

纵使Spring-AMQP对很多对象进行了包装,也添加了很多对象,比如RabbitAdmin、ConnectionFactory等等。
但是要明白RabbitMQ是用来干什么的,其实,最主要的还是用来发送消息和接收消息。

发送消息

0815send方法.png

针对不同的模式、不同的应用场景,Spring-AMQP都给了相应的方法

下面是调用第三种方法的举例

image.png

除了直接在send方法中设置属性,我们还可以直接在amqpTemplate对象上设置Exchange和routingkey的值

image.png

通过这样的方式指定,就能够实现对新设置的属性值覆盖已有的默认值。
不得不说,如果不通过上面的指定的方式,那么这两个属性的默认值都是空字符串。
Exchange不指定的话,则会使用RabbitMQ默认的Exchange,像我们之前提到的Hello World模式和Work模式。
RoutingKey不指定的话,表示不需要routingKey,比如Fanout模式类似广播,就不需要指定routingKey

构建消息类

既然要发送消息,那么我们就要构建消息,在前面我们提到了Message类,其中的成员有消息实体Body和消息本身的属性MessageProperties。下面我们看看如何构建一个消息对象,我们可以用MessageBuilder,也能用MessagePropertiesBuilder。

image.png image.png

通过上面的Builder类,我们还可以设置MessageProperties的其他属性比如messageId和时间戳等等。
除此以外,我们还可以用到这些方法setHeader(String key, String value)、removeHeader(String key)、copyProperties(MessageProperties properties)
那么,这些消息构造器是如何被创建出来的呢,我们有如下5种静态方法

image.png

有关发送消息的方法其实还有convertAndSend,这类方法将在后面的消息转换部分详细讲解。

如果您觉得阅读本文对您有帮助,请点一下“喜欢”按钮,您的“喜欢”将是我最大的写作动力!如果您想持续关注我的文章,请扫描二维码,关注JackieZheng的微信公众号,我会将我的文章推送给您,并和您一起分享我日常阅读过的优质文章。

上一篇 下一篇

猜你喜欢

热点阅读