首页

分享基于Spring的JmsTemplate和消息中间件ActiveMQ实现消息发送接受实践工程源码下载

标签:jms,中间件,消息,解耦,activeMQ,apache,JmsTemplate,开源     发布时间:2016-10-09   
  • 云盘下载:
  • [提取码:0000]
       ( 需积分:2  )

一、项目简介

该工程基于 ActiveMQ 消息中间件实现JMS消息服务,通过Spring的org.springframework.jms.core.JmsTemplate(org.springframework.jms-3.0.0.RELEASE.jar)实现消息发送和接受操作,项目截图如下,项目GitHub分享地址https://github.com/xwooduser/JmsSpring.git

分享基于Spring的JmsTemplate和消息中间件ActiveMQ实现消息发送接受实践工程源码下载

二、代码快照

1.  spring配置文件,端口9999对应ActiveMQ配置文件conf/activemq.xml中transportConnector的配置端口(这边配置online.xwood.net:9999端口根据实际就行修改)

<?xml version="1.0" encoding="UTF-8"?>@b@<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">@b@<beans>@b@	 <bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">@b@        <property name="brokerURL">@b@            <value>tcp://online.xwood.net:9999?wireFormat.maxInactivityDuration=0</value>@b@        </property>@b@    </bean>@b@ @b@    <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">@b@        <property name="connectionFactory">@b@            <ref bean="connectionFactory"/>@b@        </property>@b@    </bean>@b@ @b@    <bean id="messageQueue" class="org.apache.activemq.command.ActiveMQQueue">@b@        <constructor-arg index="0">@b@            <value>MessageQueue</value>@b@        </constructor-arg>@b@    </bean>@b@</beans>

2. 消息发送类MessageSender,代码如下

import javax.jms.Destination;@b@import org.springframework.jms.core.JmsTemplate;@b@import spring.SpringBean;@b@@b@public class MessageSender{@b@	@b@	/**获取注册到spring的jms实现容器对象*/@b@	private static JmsTemplate jms_container = (JmsTemplate) SpringBean.getBean("jmsTemplate");@b@	/**获取注册到spring的activeMQ的客户端调用对象*/@b@	private static Destination activeMQ_cache = (Destination) SpringBean.getBean("messageQueue");@b@	@b@	public static void main(String[] args) throws Exception{@b@		System.out.println("发送消息至messageQueue中...");@b@        for (int i = 1; i < 10; i++) {@b@        	System.out.println("ping..."+i);@b@            jms_container.send(activeMQ_cache, new MyMessageCreator(i));@b@            Thread.sleep(1000);@b@        }@b@	}@b@@b@}

项目测试之前,请先下载安装配置运行ActiveMQ,运行测试控制打印结果如下

发送消息至messageQueue中...@b@ping...1@b@ping...2@b@ping...3@b@ping...4@b@ping...5@b@ping...6@b@ping...7@b@ping...8@b@ping...9

这是查看管理后台点击预览(admin/admin),可以看到9条未消费的消息,如下图所示

分享基于Spring的JmsTemplate和消息中间件ActiveMQ实现消息发送接受实践工程源码下载

3. 消息接受类MessageReciver,代码如下

import javax.jms.Destination;@b@import javax.jms.TextMessage;@b@import org.springframework.jms.core.JmsTemplate;@b@import spring.SpringBean;@b@@b@public class MessageReciver {@b@	@b@	/**获取注册到spring的jms实现容器对象*/@b@	private static JmsTemplate jms_container = (JmsTemplate) SpringBean.getBean("jmsTemplate");@b@	/**获取注册到spring的activeMQ的客户端调用对象*/@b@	private static Destination activeMQ_cache = (Destination) SpringBean.getBean("messageQueue");@b@	@b@	 public static void main(String args[]) throws Exception {@b@		 	System.out.println("获取ActiveMQ中的收到的消息...");@b@	        while (true) {@b@	        	TextMessage   msg = (TextMessage) jms_container.receive(activeMQ_cache);@b@	            System.out.println("收到消息 :" + msg.getText());@b@	            if (msg.getText().equals(MyMessageCreator.END_TAG)) @b@	            	break;@b@	            @b@	        }@b@	    }@b@}

运行后,控制台打印如下

获取ActiveMQ中的收到的消息...@b@收到消息 :这个是第 1 个测试消息!@b@收到消息 :这个是第 2 个测试消息!@b@收到消息 :这个是第 3 个测试消息!@b@收到消息 :这个是第 4 个测试消息!@b@收到消息 :这个是第 5 个测试消息!@b@收到消息 :这个是第 6 个测试消息!@b@收到消息 :这个是第 7 个测试消息!@b@收到消息 :这个是第 8 个测试消息!@b@收到消息 :end

这是9条消息被消费掉,如下图

分享基于Spring的JmsTemplate和消息中间件ActiveMQ实现消息发送接受实践工程源码下载