zoukankan      html  css  js  c++  java
  • spring整合JMS

    一. 开篇语

    继上一篇apache ActiveMQ之初体验后, 由于近期一直在复习spring的东西, 所以本文就使用spring整合下JMS.


    二. 环境准备

    1. ActiveMQ5.2.0 (activemq-all-5.2.0.jar)

    2. spring2.5 (spring.jar)

    3. JavaEE5

    4. JDK1.6


    注意: 測试前请先启动ActiveMQserver


    三. 代码測试(P2P)

    1. MsgSender: 消息生产者

    /**
     * message sender
     */
    public class MsgSender {
    	public static void main(String[] args) throws Exception {
    		// load xml and create bean factory
    		ApplicationContext ctx = new ClassPathXmlApplicationContext("/applicationContext.xml");
    		
    		// get JmsTemplate object from spring container
    		JmsTemplate jmsTemplate = (JmsTemplate) ctx.getBean("jmsTemplate");
    		
    		// get Destination object from spring container
    		Destination destination = (Destination) ctx.getBean("destination");
    
    		// send msg to activeMQ server
    		jmsTemplate.send(destination, new MessageCreator() {
    			TextMessage message = null;
    			public Message createMessage(Session session) {
    				try {
    					String str = "hello activeMQ!";
    					message = session.createTextMessage(str);
    					System.out.println("send: " + str);
    				} catch (Exception e) {
    					throw new RuntimeException("error happens...", e);
    				}
    				return message;
    			}
    		});
    	}
    }
    

    2. MsgReceiver: 消息消费者

    /**
     * message receiver
     */
    public class MsgReceiver {
    	public static void main(String[] args) throws Exception {
    		// load xml and create bean factory
    		ApplicationContext ctx = new ClassPathXmlApplicationContext("/applicationContext.xml");
    		
    		// get JmsTemplate object from spring container
    		JmsTemplate jmsTemplate = (JmsTemplate) ctx.getBean("jmsTemplate");
    		
    		// get Destination object from spring container
    		Destination destination = (Destination) ctx.getBean("destination");
    		
    		while (true) {
    			// receive msg from activeMQ server
    			TextMessage txtmsg = (TextMessage) jmsTemplate.receive(destination);
    			if (null != txtmsg){
    				System.out.println("receive: " + txtmsg.getText());
    			}else{
    				break;
    			}
    		}
    	}
    }
    

    3. 配置applicationContext.xml

    <?

    xml version="1.0" encoding="UTF-8"?

    > <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"> <!-- config JMS connection factory --> <bean id="connectionFactory" class="org.apache.activemq.spring.ActiveMQConnectionFactory"> <property name="brokerURL" value="tcp://localhost:61616" /> </bean> <!-- config JMS template --> <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate"> <property name="connectionFactory" ref="connectionFactory" /> </bean> <!-- config message send destination(queue) --> <bean id="destination" class="org.apache.activemq.command.ActiveMQQueue"> <!-- set the name of message queue --> <constructor-arg index="0" value="myQueue" /> </bean> </beans>

    4. 源代码下载地址: http://download.csdn.net/detail/zdp072/7422385

  • 相关阅读:
    N天学习一个linux命令之scp
    php svn仓库提交预处理
    NTP-网络时间协议
    N天学习一个linux命令之umask
    N天学习一个linux命令之xz
    N天学习一个linux命令之xargs
    N天学习一个Linux命令之hostnamectl
    jQuery easyUI的datagrid,如何在翻页以后仍能记录被选中的行
    multiselect2side:jQuery多选列表框插件
    springmvc+jquery实现省市区地址下拉框联动
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/5069410.html
Copyright © 2011-2022 走看看