转载请出自出处:http://eksliang.iteye.com/blog/2243158
一、概述
当调用JmsTemplate的receive()方法时,JmsTemplate会尝试从ActiveMQ中获取一个消息。如果没有可用的消息,receive()方法会一直等待,直到获得消息为止。也就是说该方法时同步的。这意味着接收者必须耐心等待消息的到来,因此receive()方法会一直被阻塞,直到有可用消息(或者消息超时)。
可喜的是Spring2.0提供了他自己的消息驱动Bean形式来满足异步接收消息的需求,这种形式与EJB3的MDB非常相似。这里我只介绍最流行的消息驱动POJO(基于Spring的),EJB3的不进行介绍。
二、声明一个POJO来异步接收消息
发送消息的代码如下:
/** * 使用JmsTemplate发送序列化消息 * @param user */ public void send(final User user){ jmsTemplate.send(new MessageCreator() { @Override public ObjectMessage createMessage(Session session) throws JMSException { ObjectMessage msg = session.createObjectMessage(); msg.setObject(user); return msg; } }); }
声明UserHandler用来接收消息代码如下:
package com.gosun.jms.pojo; import com.gosun.jms.domain.User; public class UserHandler{ public void handler(User user){ System.out.println("异步接收消息:"+user); } }
Spring提供了能够以POJO的方式处理消息的能力,这些消息来自于JMS队列或者主题中,这就是Spring的强大之处。
三、配置消息监听器
为POJO赋予接收消息的能力还需要在spring中把他配置为消息驱动器。Spring的jms命名空间为我们提供了所需要的一切。代码如下,把上面的POJO(UserHandler),配置为消息驱动器代码如下:
<bean id="userHandler" class="com.gosun.jms.pojo.UserHandler"></bean> <jms:listener-container connection-factory="connectionFactory"> <!-- 可以有多个 --> <jms:listener destination="queue.destination" ref="userHandler" method="handler"/> </jms:listener-container>
上述代码中,我们在消息监听器容器中包含了一个消息监听器。消息监听器容器是一个特殊的bean,可以监控JMS目的地并等待消息的到达。一旦消息到达,他取出消息,然后把消息传给任意一个对此消息感兴趣的消息监听器。
- <jms:listener-container>:消息驱动器容器,connection-factory="connectionFactory"属性配置了连接工厂。容器中的<jms:listener>都使用这个连接工厂进行监听.
- <jms:listener>:消息监听器,他标识了一个bean和一个可以处理消息的方法。
相关推荐
在本教程中,我们将探讨如何整合Spring框架与ActiveMQ消息队列,实现前后台的消息传递。这有助于提升系统的可扩展性和响应速度,降低不同组件之间的耦合度。 首先,Spring框架是Java企业级应用开发的事实标准,它...
在ActiveMQ的集成中,Spring也提供了JmsTemplate,它简化了发送和接收消息的过程,避免了直接操作JMS API的繁琐步骤。 三、ActiveMQ与Spring的集成 1. 配置ActiveMQ服务器:首先,需要在服务器上部署ActiveMQ,并...
在IT行业中,消息中间件是实现系统间异步通信、解耦合的关键技术之一,而Apache ActiveMQ就是其中的一款著名开源产品。Spring框架作为Java领域广泛使用的应用框架,提供了与ActiveMQ集成的能力,使得我们可以方便地...
当ActiveMQ与Spring整合时,可以方便地实现异步处理,比如异步发送邮件,这在大型系统中尤为常见,因为它们能够避免阻塞主线程,提升系统性能。 **ActiveMQ基础** 1. **概念理解**:ActiveMQ作为消息代理,接收并...
在本文中,我们将深入探讨如何将ActiveMQ与Spring框架整合,构建一个简单的消息传递系统。ActiveMQ是Apache软件基金会开发的开源消息中间件,而Spring则是一个广泛使用的Java企业级应用开发框架。将两者结合,我们...
ActiveMQ整合Spring的Demo是一个典型的Java企业级应用示例,它展示了如何在Spring框架中集成Apache ActiveMQ,以便实现消息队列的功能。ActiveMQ是Apache软件基金会的一个开源项目,它是一个功能丰富的Java消息服务...
在Spring应用中整合ActiveMQ,不仅可以实现异步处理,提高系统的响应速度,还能实现解耦,使得各个组件可以独立开发和部署。同时,ActiveMQ还提供了丰富的监控和管理工具,如Web控制台,便于对消息队列进行管理和...
标题中的“activemq整合spring”指的是在Java环境中,如何将Apache ActiveMQ,一个流行的开源消息代理和消息中间件,与Spring框架集成,以便利用Spring的便利性来管理ActiveMQ的配置和操作。ActiveMQ提供了发布/订阅...
本教程将详细介绍如何在Spring Boot项目中集成ActiveMQ,实现消息接收的Demo。 首先,我们需要在Spring Boot项目中引入ActiveMQ的相关依赖。在`pom.xml`文件中添加以下Maven依赖: ```xml <groupId>org.spring...
本例子程序的主题是"activeMQ与spring整合开发",这意味着它将展示如何在Spring应用中集成ActiveMQ,以便利用消息队列进行异步通信和解耦组件。以下是一些关键知识点: 1. **Spring集成ActiveMQ的基本配置**:在...
在IT行业中,消息队列(Message Queue)是分布式系统中常用的一种组件,它负责处理应用程序之间的异步通信,提高系统的可扩展性和响应速度。ActiveMQ是Apache软件基金会下的一个开源项目,是Java平台上最流行的消息...
在IT行业中,Apache ActiveMQ和Spring框架的整合是常见的企业级消息传递解决方案。这个"activemq和spring整合发布消息和订阅消息demo"是用于演示如何在Spring环境中配置和使用ActiveMQ来实现实时的数据通信。现在,...
本篇将深入探讨如何在 Spring 中集成 ActiveMQ,并利用消息转换器实现不同格式消息的交互。 首先,我们需要在项目中引入 ActiveMQ 和 Spring 相关的依赖。通常,这可以通过 Maven 或 Gradle 的配置来完成。例如,在...
以下是一个简单的Spring配置示例,展示了如何在XML中配置ActiveMQ连接和消息监听器: ```xml <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi=...
在IT行业中,消息队列(Message ...通过这样的配置,我们可以方便地在Spring应用中发送和接收消息,从而实现服务间的异步通信。在实际应用中,可以根据需求调整配置,如设置消息持久化、事务管理、错误处理等高级特性。
将ActiveMQ与Spring整合,可以方便地在Spring应用中使用JMS,实现消息驱动的架构。 本文将深入探讨ActiveMQ与Spring整合的关键知识点: 1. **Spring对JMS的支持**: Spring提供了`org.springframework.jms`包,该...
将ActiveMQ与Spring整合,可以方便地在Spring应用中使用消息队列,实现异步处理和分布式通信。 **一、ActiveMQ安装与配置** 在Linux系统中安装ActiveMQ,首先需要下载ActiveMQ的二进制包,解压后将其放置在合适的...
将Spring与ActiveMQ整合,可以轻松地在Spring应用中实现消息队列的功能,提高系统的可扩展性和可靠性。 首先,让我们了解Spring框架如何支持消息传递。Spring提供了JmsTemplate类,这是一个模板类,用于简化发送和...
将ActiveMQ与Spring整合,可以方便地在Spring应用中使用消息队列,简化配置,并提供事务性消息支持。 这个实例代码是将ActiveMQ与Spring进行整合的一个实际项目,可以在Tomcat服务器上运行。由于提供了所有必要的...
本文将深入探讨如何在Spring环境中配置并使用ActiveMQ,以及如何通过消息监听器来接收和处理消息。 ### 1. 安装与配置ActiveMQ 首先,你需要下载并运行ActiveMQ服务器。下载地址为:...