多语言展示
当前在线:780今日阅读:176今日分享:34

在Spring中集成ActiveMQ组件

ActiveMQ 是Apache出品,最流行的、功能强大的即时通讯和集成模式的开源服务器。本文以Apache ActiveMQ 5.8版本为例,一步步介绍怎么在Spring框架中集成ActiveMQ组件。
工具/原料
1

Windows系统

2

JDK:1.6+

3

IDE:eclipse

4

Apache ActiveMQ 5.8

方法/步骤
1

下载ActiveMQ:http://www.apache.org/dyn/closer.cgi?path=/activemq/apache-activemq/5.8.0/apache-activemq-5.8.0-bin.zip

2

解压apache-activemq-5.8.0.zip即可完成ActiveMQ的安装,解压后目录结构如下简单介绍每个文件夹的含义:+bin (windows下面的bat和unix/linux下面的sh) 启动ActiveMQ的启动服务就在这里+conf (activeMQ配置目录,包含最基本的activeMQ配置文件)+data (默认是空的)+docs (index,replease版本里面没有文档)+example (几个例子)+lib (activeMQ使用到的lib)+webapps (系统管理员控制台代码)+webapps-demo(系统示例代码)-activemq-all-5.8.0.jar (ActiveMQ的binary)-user-guide.html (部署指引)-LICENSE.txt-NOTICE.txt-README.txt其他文件就不相信介绍了,搞Java的应该都知道干什么用的。

4

启动成功就可以访问管理员界面:http://localhost:8161/admin,默认用户名和密码admin/admin。如果你想修改用户名和密码的话,在conf/jetty-realm.properties中修改即可。其中在导航菜单中,Queues是队列方式消息。Topics是主题方式消息。Subscribers消息订阅监控查询。Connections可以查看链接数,分别可以查看xmpp、ssl、stomp、openwire、ws和网络链接。Network是网络链接数监控。Send可以发送消息数据。

5

整合Spring实现消息发送和接收,在整合之前我们需要添加jar包,需要的jar包如下:这些jar包可以在D:\apache-activemq-5.8.0\lib这个lib目录中找到,添加完jar包后就开始编码工作。消息发送者package com.hoo.mq.spring.support; import java.util.Date;import javax.jms.JMSException;import javax.jms.MapMessage;import javax.jms.Message;import javax.jms.Session;import org.springframework.context.ApplicationContext;import org.springframework.context.support.FileSystemXmlApplicationContext;import org.springframework.jms.core.JmsTemplate;import org.springframework.jms.core.MessageCreator; /** * function: Spring JMSTemplate 消息发送者 * @author hoojo * @createDate 2013-6-24 下午02:18:48 * @file Sender.java * @package com.hoo.mq.spring.support * @project ActiveMQ-5.8 * @blog http://blog.csdn.net/IBM_hoojo * @email hoojo_@126.com * @version 1.0 */public class Sender {  public static void main(String[] args) { ApplicationContext ctx = new FileSystemXmlApplicationContext('classpath:applicationContext-*.xml'); JmsTemplate jmsTemplate = (JmsTemplate) ctx.getBean('jmsTemplate');  jmsTemplate.send(new MessageCreator() { public Message createMessage(Session session) throws JMSException { MapMessage message = session.createMapMessage(); message.setString('message', 'current system time: ' + new Date().getTime()); return message; } }); }}消息接收者package com.hoo.mq.spring.support; import java.util.Map;import org.springframework.context.ApplicationContext;import org.springframework.context.support.FileSystemXmlApplicationContext;import org.springframework.jms.core.JmsTemplate; /** * function: Spring JMSTemplate 消息接收者 * @author hoojo * @createDate 2013-6-24 下午02:22:32 * @file Receiver.java * @package com.hoo.mq.spring.support * @project ActiveMQ-5.8 * @blog http://blog.csdn.net/IBM_hoojo * @email hoojo_@126.com * @version 1.0 */public class Receiver {  @SuppressWarnings('unchecked') public static void main(String[] args) { ApplicationContext ctx = new FileSystemXmlApplicationContext('classpath:applicationContext-*.xml'); JmsTemplate jmsTemplate = (JmsTemplate) ctx.getBean('jmsTemplate'); while(true) { Map map = (Map) jmsTemplate.receiveAndConvert(); System.out.println('收到消息:' + map.get('message')); } }}这里主要是用到了JmsTemplate这个消息模板,这个对象在spring的IoC容器中管理,所以要从spring的容器上下文中获取。下面看看spring的配置文件applicationContext-beans.xml内容:   这里的整合就比较简单了,如果你是web工程,那你在需要用jms的时候,只需用注入jmsTemplate即可。

注意事项

注意环境,System:Windows JDK:1.6+ IDE:eclipse apache ActiveMQ 5.8

推荐信息