`
eksliang
  • 浏览: 596989 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

ActiveMQ在Spring中异步接收消息(六)

    博客分类:
  • JMS
阅读更多

转载请出自出处: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框架与ActiveMQ消息队列,实现前后台的消息传递。这有助于提升系统的可扩展性和响应速度,降低不同组件之间的耦合度。 首先,Spring框架是Java企业级应用开发的事实标准,它...

    activemq5.5.1 Spring模板

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

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

    在IT行业中,消息中间件是实现系统间异步通信、解耦合的关键技术之一,而Apache ActiveMQ就是其中的一款著名开源产品。Spring框架作为Java领域广泛使用的应用框架,提供了与ActiveMQ集成的能力,使得我们可以方便地...

    ActiveMQ与Spring整合之异步发送邮件

    当ActiveMQ与Spring整合时,可以方便地实现异步处理,比如异步发送邮件,这在大型系统中尤为常见,因为它们能够避免阻塞主线程,提升系统性能。 **ActiveMQ基础** 1. **概念理解**:ActiveMQ作为消息代理,接收并...

    activeMQ_spring简单案例(含XML配置)

    在本文中,我们将深入探讨如何将ActiveMQ与Spring框架整合,构建一个简单的消息传递系统。ActiveMQ是Apache软件基金会开发的开源消息中间件,而Spring则是一个广泛使用的Java企业级应用开发框架。将两者结合,我们...

    ActiveMQ整合spring的Demo

    ActiveMQ整合Spring的Demo是一个典型的Java企业级应用示例,它展示了如何在Spring框架中集成Apache ActiveMQ,以便实现消息队列的功能。ActiveMQ是Apache软件基金会的一个开源项目,它是一个功能丰富的Java消息服务...

    activeMQ+spring

    在Spring应用中整合ActiveMQ,不仅可以实现异步处理,提高系统的响应速度,还能实现解耦,使得各个组件可以独立开发和部署。同时,ActiveMQ还提供了丰富的监控和管理工具,如Web控制台,便于对消息队列进行管理和...

    activemq整合spring

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

    springboot集成activemq实现消息接收demo

    本教程将详细介绍如何在Spring Boot项目中集成ActiveMQ,实现消息接收的Demo。 首先,我们需要在Spring Boot项目中引入ActiveMQ的相关依赖。在`pom.xml`文件中添加以下Maven依赖: ```xml &lt;groupId&gt;org.spring...

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

    本例子程序的主题是"activeMQ与spring整合开发",这意味着它将展示如何在Spring应用中集成ActiveMQ,以便利用消息队列进行异步通信和解耦组件。以下是一些关键知识点: 1. **Spring集成ActiveMQ的基本配置**:在...

    ActiveMQ与spring整合封装

    在IT行业中,消息队列(Message Queue)是分布式系统中常用的一种组件,它负责处理应用程序之间的异步通信,提高系统的可扩展性和响应速度。ActiveMQ是Apache软件基金会下的一个开源项目,是Java平台上最流行的消息...

    activemq和spring整合发布消息和订阅消息demo

    在IT行业中,Apache ActiveMQ和Spring框架的整合是常见的企业级消息传递解决方案。这个"activemq和spring整合发布消息和订阅消息demo"是用于演示如何在Spring环境中配置和使用ActiveMQ来实现实时的数据通信。现在,...

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

    本篇将深入探讨如何在 Spring 中集成 ActiveMQ,并利用消息转换器实现不同格式消息的交互。 首先,我们需要在项目中引入 ActiveMQ 和 Spring 相关的依赖。通常,这可以通过 Maven 或 Gradle 的配置来完成。例如,在...

    activemq-spring-5.5.0.jar.zip

    以下是一个简单的Spring配置示例,展示了如何在XML中配置ActiveMQ连接和消息监听器: ```xml &lt;beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi=...

    ActiveMQ+spring配置方案详解

    在IT行业中,消息队列(Message ...通过这样的配置,我们可以方便地在Spring应用中发送和接收消息,从而实现服务间的异步通信。在实际应用中,可以根据需求调整配置,如设置消息持久化、事务管理、错误处理等高级特性。

    JMS之ActiveMQ与Spring整合源码

    将ActiveMQ与Spring整合,可以方便地在Spring应用中使用JMS,实现消息驱动的架构。 本文将深入探讨ActiveMQ与Spring整合的关键知识点: 1. **Spring对JMS的支持**: Spring提供了`org.springframework.jms`包,该...

    ActiveMQ与Spring整合示例Demo

    将ActiveMQ与Spring整合,可以方便地在Spring应用中使用消息队列,实现异步处理和分布式通信。 **一、ActiveMQ安装与配置** 在Linux系统中安装ActiveMQ,首先需要下载ActiveMQ的二进制包,解压后将其放置在合适的...

    Spring和ActiveMQ整合的完整实例

    将Spring与ActiveMQ整合,可以轻松地在Spring应用中实现消息队列的功能,提高系统的可扩展性和可靠性。 首先,让我们了解Spring框架如何支持消息传递。Spring提供了JmsTemplate类,这是一个模板类,用于简化发送和...

    activemq整合spring完整实例代码(内含所有相关jar包)

    将ActiveMQ与Spring整合,可以方便地在Spring应用中使用消息队列,简化配置,并提供事务性消息支持。 这个实例代码是将ActiveMQ与Spring进行整合的一个实际项目,可以在Tomcat服务器上运行。由于提供了所有必要的...

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

    本文将深入探讨如何在Spring环境中配置并使用ActiveMQ,以及如何通过消息监听器来接收和处理消息。 ### 1. 安装与配置ActiveMQ 首先,你需要下载并运行ActiveMQ服务器。下载地址为:...

Global site tag (gtag.js) - Google Analytics