天天看点

Spring整合JMS(消息中间件)实例

本篇主要讲解如何在spring中配置jms,关于spring本身的配置本文就不多做介绍了。

在使用spring-jms之前,先配置相关依赖。

这里只是简单介绍如何安装启动activemq,详细请参考官方文档。

安装:

- 解压:tar zxvf activemq-x.x.x-bin.tar.gz

- 增加权限:

<code>cd [activemq_install_dir]/bin</code>

<code>chmod 755 activemq</code>

启动:

<code>./activemq start</code>

检查是否启动成功:

<code>netstat -nl|grep 61616</code>

写一个jmsmessageproducer异步发送消息:

写完listener之后还需要在配置文件中配置这个listener:

写一个jmsmessageproducertest测试一下发送:

看一下运行结果:

Spring整合JMS(消息中间件)实例

消息已经异步发送成功,虽然还没有消费者消费,消息就像被成功处理一样。

写一个jmsmessageconsumertest 测试一下接收:

Spring整合JMS(消息中间件)实例

我们可以看到消费者接收到一条消息,这条消息正是上面发送者发送的第一条消息。如果我们再运行一遍则会收到第二条消息。如果所有消息都消费完了,broker中没有消息了,此时jmsmessageconsumertest进程便会挂起一直等待,直到有新消息产生,大家可以试一下。

按照上面3.2节写介绍一个<code>jmsmessagelistener</code>并将其配置到 <code>listener-container</code>中。此时<code>jmsmessagelistener</code>便会实时监听<code>brokerurl="tcp://192.168.134.128:61616"</code>这个端口,一旦有消息产生,便会在<code>onmessage()</code>方法接收到消息。其实此时我们的producer和监听器都在同一个应用中,如果我们再运行producer,可以看到如下结果:

Spring整合JMS(消息中间件)实例

通过运行结果可以看到,每当生产者生产消息,监听器便会实时接收到消息。