`
machunlin
  • 浏览: 27361 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ActiveMQ和spring集成

阅读更多

 1.消息发送类

package cn.com.biceng.jms.queue;

import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.Session;

import org.apache.activemq.command.ActiveMQQueue;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.MessageCreator;

import cn.com.biceng.jms.IQueueSender;

/**
 * 队列消息发送者。
  */
public class QueueSender implements IQueueSender
{
	
	// 发送消息的目的地
	private Destination destination;
	
	private JmsTemplate jmsTemplate;
	
	public QueueSender(ActiveMQQueue queue){
		this.destination = queue;
	}
	
	/**
	 * 发送消息。
	 * 
	 * @param message
	 *            报文。
	 * @return
	 * @author ma_chunlin
	 * @date 2013-5-6
	 */
	public void send(final String message) throws JMSException
	{

		jmsTemplate.send(destination, new MessageCreator()
		{
			
			public Message createMessage(Session session) throws JMSException
			{

				return session.createTextMessage(message);
			}
		});
	}
	
	public void setJmsTemplate(JmsTemplate jmsTemplate)
	{

		this.jmsTemplate = jmsTemplate;
	}
	
}

 2.消息接收类,此处采用监听器方式实现

 

package cn.com.biceng.jms.queue;

import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.Session;
import javax.jms.TextMessage;

import org.apache.log4j.Logger;
import org.springframework.jms.listener.SessionAwareMessageListener;

/**
 * 
 * 消息接收监听器。 
  */
public class QueueReceiverListener implements SessionAwareMessageListener
{
	private static Logger log = Logger.getLogger(QueueReceiverListener.class);
	
	public void onMessage(Message message, Session session) throws JMSException
	{
		//1.接收报文
		TextMessage msg = (TextMessage)message;
		
		if(log.isDebugEnabled()){
			log.debug("QueueReceiverListener接收到报文:" +  msg.getText());
		}
		
		//2.解析报文,建议此处使用工具类解析
		
		//3.调用接口,处理业务,建议此处使用“抽象工厂模式”调用内部接口,以使代码符合“开-闭原则”
		
		//4.发送返回消息(可省略)
	}
}

 

 

 

 

3.消息发送接口

 

package cn.com.biceng.jms;

import javax.jms.JMSException;
/**
 * 队列消息发送者。
 * 
  */
public interface IQueueSender
{
	
	/**
	 * 发送消息。
	 * 
	 * @param message
	 *            报文。
	 * @return
	 * @author ma_chunlin
	 * @date 2013-5-6
	 */
	public abstract void send(final String message) throws JMSException;
	
}

 

4. 用到的jar



 

 

5. spring配置文件

 

<?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"
	default-autowire="byName">   
 
 <!-- JMS activeMq的配置  -->
  
    <!-- 1. 配置connectionFactory -->
	<bean id="jmsFactory" class="org.apache.activemq.pool.PooledConnectionFactory"
		destroy-method="stop">
		<property name="connectionFactory">
			<bean class="org.apache.activemq.ActiveMQConnectionFactory">
				<property name="brokerURL"> 
               		<!-- JMS消息服务器的IP和端口号 -->
					<value>tcp://192.168.8.241:61616</value>
				</property>
			</bean>
		</property>
		<property name="maxConnections" value="100"/>
		<!-- <property name="idleTimeout" value="60"/>  -->
	</bean>   
  
    <!-- 2.Spring JMS Template -->
	<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
		<property name="connectionFactory">
			<ref local="jmsFactory" />
		</property>
		<property name="defaultDestinationName" value="queue_eSign_call_feeSys" />   
        <!-- 区别它采用的模式为false是p2p, true是订阅 -->
		<property name="pubSubDomain" value="false" />
	</bean>   

    <!-- 3.发送给计费系统的消息 -->
	<bean id="queue_eSign_to_feeSys" class="org.apache.activemq.command.ActiveMQQueue">
		<constructor-arg index="0" value="queue_eSign_to_feeSys" />
	</bean>
    
    <!-- 4.来自计费系统的消息  -->
	<bean id="queue_feeSys_to_eSign" class="org.apache.activemq.command.ActiveMQQueue">
		<constructor-arg index="0" value="queue_feeSys_to_eSign" />
	</bean>
	
	<!-- 5.消息发送者 -->
	<bean id="QueueSender" class="cn.com.biceng.jms.queue.QueueSender">
		<constructor-arg ref="queue_eSign_to_feeSys" />
		<property name="jmsTemplate" ref="jmsTemplate" />
	</bean>
	
	<!-- 6.队列监听器 -->
	<bean id="QueueReceiverListener" class="cn.com.biceng.jms.queue.QueueReceiverListener">
	</bean>
	
	<!-- 7.队列监听器的容器 -->
	<bean id="QueueReceiverContainer"
		class="org.springframework.jms.listener.DefaultMessageListenerContainer">
		<property name="concurrentConsumers" value="1" />
		<property name="connectionFactory" ref="jmsFactory" />
		<!-- 监听的队列 -->
		<property name="destinationName" value="queue_feeSys_to_eSign" />
		<property name="messageListener" ref="QueueReceiverListener" />
		<property name="pubSubNoLocal" value="false"/>   
	</bean>
</beans>

 

 

  • 大小: 40.9 KB
分享到:
评论

相关推荐

    activeMQ和Spring集成Demo

    ActiveMQ和Spring的集成是企业级Java应用中常见的消息中间件解决方案,用于实现解耦、异步处理和系统间的通信。在本示例中,我们将深入探讨如何将这两个组件结合在一起,以创建一个高效且可扩展的应用架构。 首先,...

    消息队列:ActiveMQ:ActiveMQ的Spring集成.docx

    消息队列:ActiveMQ:ActiveMQ的Spring集成.docx

    ActiveMQ与spring集成实例之使用Maven构建

    标题中的“ActiveMQ与Spring集成实例之使用Maven构建”是指在Java开发环境中,通过Maven构建工具将Apache ActiveMQ消息中间件与Spring框架整合在一起的实际操作案例。这个主题涵盖了几大关键知识点: 1. **Apache ...

    activemq5.5.1 Spring模板

    在ActiveMQ的集成中,Spring也提供了JmsTemplate,它简化了发送和接收消息的过程,避免了直接操作JMS API的繁琐步骤。 三、ActiveMQ与Spring的集成 1. 配置ActiveMQ服务器:首先,需要在服务器上部署ActiveMQ,并...

    ActiveMQ与spring集成实例之使用消息监听器

    **ActiveMQ与Spring集成实例详解** ActiveMQ是Apache软件基金会下的一个开源项目,它是一个功能丰富的Java消息服务(JMS)提供商,支持多种协议,并且能够处理大量的并发消息传输。而Spring框架则是一个广泛使用的...

    ActiveMQ与spring集成实例

    通过以上步骤,你已经成功地将ActiveMQ与Spring集成,并实现了基本的消息收发功能。在实际项目中,你可能需要根据需求调整配置,例如设置消息的持久化、事务支持、消息优先级等高级特性。此外,ActiveMQ还提供了管理...

    activemq与spring整合源代码

    Spring还提供了丰富的模块,如数据访问、Web、测试等,其中Spring JMS模块专门用于集成消息中间件,使得与ActiveMQ的整合变得简单。 三、ActiveMQ与Spring的整合 1. 添加依赖:首先,在项目中引入ActiveMQ和Spring...

    ActiveMQ与spring集成实例之使用消息转换器

    **ActiveMQ与Spring集成实例——使用消息转换器** 在企业级应用开发中,消息队列(Message Queue,MQ)作为一种解耦和异步处理的重要工具,被广泛应用。Apache ActiveMQ 是一个开源的消息中间件,它支持多种消息...

    activemq与spring的整合案例

    本案例主要展示了如何在Spring应用中集成ActiveMQ,实现消息的发送和接收。首先,我们需要在项目中引入ActiveMQ的相关依赖。在Maven工程中,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;org.apache....

    Spring集成ActiveMQ配置

    下面,我们将深入探讨Spring集成ActiveMQ的具体配置和实现细节。 ### 集成环境 首先,确定所使用的软件版本至关重要。本文中提到的Spring版本为2.5.6,ActiveMQ版本为5.4.2,这两个版本在当时(注意时间背景)是...

    activeMQ_spring简单案例(含XML配置)

    总的来说,集成ActiveMQ和Spring可以简化消息传递的复杂性,提高应用程序的可扩展性和解耦性。通过XML配置,我们可以灵活地管理消息生产和消费,实现异步通信,提高系统的响应速度和并发处理能力。在实际项目中,...

    ActiveMQ整合spring的Demo

    2. **Spring集成ActiveMQ**:Spring通过`spring-jms`模块提供对JMS的支持。在Spring配置文件中(如`applicationContext.xml`),你需要定义一个`JmsTemplate`,它提供了一种简单的方式来发送和接收消息。同时,配置`...

    activemq-spring-5.5.0.jar.zip

    1. `activemq-spring`模块:这个库包含了Spring对ActiveMQ的集成支持,使得开发者可以方便地在Spring应用上下文中配置ActiveMQ连接。 2. 配置方式:通过XML配置或Java配置,可以声明式地创建消息生产者...

    ActiveMQ与Spring线程池整合实例

    ActiveMQ与Spring线程池整合的一个实例。 lib库没有上传。 对于实例的讲解,在竹子的论坛有我对这个实例的帖子(http://www.java2000.net/viewthread.jsp?tid=1167) lib中包含: apache-activemq-4.1.1.jar ...

    ActiveMQ+spring配置方案详解

    当我们需要在Spring应用中集成ActiveMQ时,就需要进行相应的配置。本文将深入讲解ActiveMQ与Spring的整合配置方案。 首先,我们需要在项目中引入ActiveMQ的相关依赖。这通常通过在`pom.xml`文件中添加Maven依赖来...

    activemq整合spring

    标题中的“activemq整合spring”指的是在Java环境中,如何将Apache ActiveMQ,一个流行的开源消息代理和消息中间件,与Spring框架集成,以便利用Spring的便利性来管理ActiveMQ的配置和操作。ActiveMQ提供了发布/订阅...

    activemq与spring整合发送jms消息入门实例

    在Java世界中,ActiveMQ和Spring的整合是企业级应用中常见的消息中间件解决方案,用于实现JMS(Java Message Service)消息传递。本教程将深入探讨如何将这两个强大的工具结合在一起,以创建一个简单的发送JMS消息的...

    activeMQ与spring整合开发的例子程序

    1. **Spring集成ActiveMQ的基本配置**:在Spring应用中使用ActiveMQ,首先需要在Spring配置文件中添加JMS相关的bean,如ConnectionFactory、Destination(Queue或Topic)、MessageListenerContainer等。这些配置将...

    activemq_spring.rar_Spring和ActiveMQ_spring_消息中间件_消息发布订阅_消息订阅

    通过以上步骤,我们可以在Spring应用中轻松地实现与ActiveMQ的集成,实现消息的发布和订阅。这种方式极大地提高了系统的可扩展性,因为生产者和消费者可以独立工作,不依赖于彼此的存在,而且消息队列的存在还能保证...

    activeMQ+spring整合

    在IT行业中,ActiveMQ和Spring的整合是企业级应用中常见的消息中间件解决方案。这个项目是基于Maven构建的,涵盖了ActiveMQ与Spring框架的集成,同时也涉及到了MyBatis的使用,使得数据访问更加便捷。下面将详细介绍...

Global site tag (gtag.js) - Google Analytics