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>
相关推荐
ActiveMQ和Spring的集成是企业级Java应用中常见的消息中间件解决方案,用于实现解耦、异步处理和系统间的通信。在本示例中,我们将深入探讨如何将这两个组件结合在一起,以创建一个高效且可扩展的应用架构。 首先,...
标题中的“ActiveMQ与Spring集成实例之使用Maven构建”是指在Java开发环境中,通过Maven构建工具将Apache ActiveMQ消息中间件与Spring框架整合在一起的实际操作案例。这个主题涵盖了几大关键知识点: 1. **Apache ...
在ActiveMQ的集成中,Spring也提供了JmsTemplate,它简化了发送和接收消息的过程,避免了直接操作JMS API的繁琐步骤。 三、ActiveMQ与Spring的集成 1. 配置ActiveMQ服务器:首先,需要在服务器上部署ActiveMQ,并...
**ActiveMQ与Spring集成实例详解** ActiveMQ是Apache软件基金会下的一个开源项目,它是一个功能丰富的Java消息服务(JMS)提供商,支持多种协议,并且能够处理大量的并发消息传输。而Spring框架则是一个广泛使用的...
通过以上步骤,你已经成功地将ActiveMQ与Spring集成,并实现了基本的消息收发功能。在实际项目中,你可能需要根据需求调整配置,例如设置消息的持久化、事务支持、消息优先级等高级特性。此外,ActiveMQ还提供了管理...
Spring还提供了丰富的模块,如数据访问、Web、测试等,其中Spring JMS模块专门用于集成消息中间件,使得与ActiveMQ的整合变得简单。 三、ActiveMQ与Spring的整合 1. 添加依赖:首先,在项目中引入ActiveMQ和Spring...
**ActiveMQ与Spring集成实例——使用消息转换器** 在企业级应用开发中,消息队列(Message Queue,MQ)作为一种解耦和异步处理的重要工具,被广泛应用。Apache ActiveMQ 是一个开源的消息中间件,它支持多种消息...
本案例主要展示了如何在Spring应用中集成ActiveMQ,实现消息的发送和接收。首先,我们需要在项目中引入ActiveMQ的相关依赖。在Maven工程中,可以在pom.xml文件中添加以下依赖: ```xml <groupId>org.apache....
下面,我们将深入探讨Spring集成ActiveMQ的具体配置和实现细节。 ### 集成环境 首先,确定所使用的软件版本至关重要。本文中提到的Spring版本为2.5.6,ActiveMQ版本为5.4.2,这两个版本在当时(注意时间背景)是...
总的来说,集成ActiveMQ和Spring可以简化消息传递的复杂性,提高应用程序的可扩展性和解耦性。通过XML配置,我们可以灵活地管理消息生产和消费,实现异步通信,提高系统的响应速度和并发处理能力。在实际项目中,...
2. **Spring集成ActiveMQ**:Spring通过`spring-jms`模块提供对JMS的支持。在Spring配置文件中(如`applicationContext.xml`),你需要定义一个`JmsTemplate`,它提供了一种简单的方式来发送和接收消息。同时,配置`...
1. `activemq-spring`模块:这个库包含了Spring对ActiveMQ的集成支持,使得开发者可以方便地在Spring应用上下文中配置ActiveMQ连接。 2. 配置方式:通过XML配置或Java配置,可以声明式地创建消息生产者...
ActiveMQ与Spring线程池整合的一个实例。 lib库没有上传。 对于实例的讲解,在竹子的论坛有我对这个实例的帖子(http://www.java2000.net/viewthread.jsp?tid=1167) lib中包含: apache-activemq-4.1.1.jar ...
当我们需要在Spring应用中集成ActiveMQ时,就需要进行相应的配置。本文将深入讲解ActiveMQ与Spring的整合配置方案。 首先,我们需要在项目中引入ActiveMQ的相关依赖。这通常通过在`pom.xml`文件中添加Maven依赖来...
标题中的“activemq整合spring”指的是在Java环境中,如何将Apache ActiveMQ,一个流行的开源消息代理和消息中间件,与Spring框架集成,以便利用Spring的便利性来管理ActiveMQ的配置和操作。ActiveMQ提供了发布/订阅...
在Java世界中,ActiveMQ和Spring的整合是企业级应用中常见的消息中间件解决方案,用于实现JMS(Java Message Service)消息传递。本教程将深入探讨如何将这两个强大的工具结合在一起,以创建一个简单的发送JMS消息的...
1. **Spring集成ActiveMQ的基本配置**:在Spring应用中使用ActiveMQ,首先需要在Spring配置文件中添加JMS相关的bean,如ConnectionFactory、Destination(Queue或Topic)、MessageListenerContainer等。这些配置将...
通过以上步骤,我们可以在Spring应用中轻松地实现与ActiveMQ的集成,实现消息的发布和订阅。这种方式极大地提高了系统的可扩展性,因为生产者和消费者可以独立工作,不依赖于彼此的存在,而且消息队列的存在还能保证...
在IT行业中,ActiveMQ和Spring的整合是企业级应用中常见的消息中间件解决方案。这个项目是基于Maven构建的,涵盖了ActiveMQ与Spring框架的集成,同时也涉及到了MyBatis的使用,使得数据访问更加便捷。下面将详细介绍...