读书人

Spring 跟ActionMQ整合JMS开发应用

发布时间: 2012-09-17 12:06:52 作者: rapoo

Spring 和ActionMQ整合JMS开发应用

?????????? Spring 和ActionMQ整合JMS开发应用,实现异步的消息的应用.使用Apache的ActiveMQ发送消息,activemq-all-5.2.jar

spring2.5 jar;jms.jar 等

?

服务段代码:

package com.unutrip.activemq.jms;import javax.jms.Destination;import javax.jms.JMSException;import javax.jms.Message;import javax.jms.Session;import org.springframework.jms.core.JmsTemplate;import org.springframework.jms.core.MessageCreator;/** * 消息发送者 *  * @author longgangbai *  */public class SpringJMSProductor { private JmsTemplate template; private Destination destination;    /**     * 发送消息     * @param message     */ public void createMessage(final String message) {  template.send(destination, new MessageCreator() {   public Message createMessage(Session session) throws JMSException {    return session.createTextMessage(message);   }  });  System.out.println(message); } public JmsTemplate getTemplate() {  return template; } public void setTemplate(JmsTemplate template) {  this.template = template; } public Destination getDestination() {  return destination; } public void setDestination(Destination destination) {  this.destination = destination; }}

?客户端代码:

package com.unutrip.activemq.jms;import javax.jms.Destination;import javax.jms.JMSException;import javax.jms.TextMessage;import org.springframework.jms.core.JmsTemplate;/** * 消息接收者 *  * @ */public class SpringJMSReceiver { private JmsTemplate template; private Destination destination; public JmsTemplate getTemplate() {  return template; } public void setTemplate(JmsTemplate template) {  this.template = template; } public Destination getDestination() {  return destination; } public void setDestination(Destination destination) {  this.destination = destination; } public void receive() throws JMSException {  while (true) {   TextMessage txtmsg = (TextMessage) template.receive(destination);   if (null != txtmsg)    System.out.println("收到消息内容为: " + txtmsg.getText());   else    break;  } }}

?

xml配置如下:

本实例中客户端和服务端在一台电脑上,共用一 配置JMS模版 和发送消息的目的地(一个队列)

JMS连接工厂和,jMS目标类

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">              <!--         <bean id="broker" value="classpath:org/apache/activemq/xbean/activemq.xml" />          <property name="start" value="true" />        </bean>         -->        <!-- 配置JMS连接工厂 -->         <bean id="connectionFactory" value="vm://localhost" />        </bean>        <!-- 配置JMS模版 -->         <bean id="jmsTemplate" ref="connectionFactory"/>         </bean>        <!-- 发送消息的目的地(一个队列) -->         <bean id="destination" value="HelloWorldQueue"/>         </bean>                 <!--服务端用于发送JMS消息 -->        <bean id="jmsproductor" style="">

?

?

?

?

?

?

?

?

?

?

?

?

?

?

读书人网 >软件架构设计

热点推荐