先导入spring相关的jar包:
再在src目录下添加spring配置文件applicaion.xml:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" 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-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd"> <!-- 连接池 --> <bean id="pooledConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory" destroy-method="stop"> <property name="connectionFactory"> <bean class="org.apache.activemq.ActiveMQConnectionFactory"> <property name="brokerURL" value="tcp://localhost:61616"></property> </bean> </property> </bean> <!-- 连接工厂 --> <bean id="activeMQConnectionFatory" class="org.apache.activemq.ActiveMQConnectionFactory"> <property name="brokerURL" value="tcp://localhost:61616"></property> </bean> <!-- 配置消息目标 destination--> <bean id="destination" class="org.apache.activemq.command.ActiveMQQueue"> <!-- 目标队列,在ActiveMQ管理员控制台创建 http://localhost:8161/admin/queues.jsp创建 --> <constructor-arg index="0" value="FouthQueue" /> <!-- 设置第一个参数为队列名 --> </bean> <!-- 配置消息模板 jmsTemplate --> <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate"> <property name="connectionFactory" ref="activeMQConnectionFatory"></property> <property name="defaultDestination" ref="destination"></property> <property name="messageConverter"> <bean class="org.springframework.jms.support.converter.SimpleMessageConverter" /> </property> </bean> </beans>
发送方代码:
package com.mycom.activemq; import java.util.HashMap; import java.util.Map; import javax.jms.JMSException; import javax.jms.MapMessage; import javax.jms.Message; import javax.jms.Session; import org.springframework.context.ApplicationContext; import org.springframework.context.support.FileSystemXmlApplicationContext; import org.springframework.jms.core.JmsTemplate; import org.springframework.jms.core.MessageCreator; /** * ActiviteMQ方式4:整合Spring * 消息发送方(生产者) * * @author guweiqiang */ public class SpringSender { /** * 发送消息 */ public static void sendMessage(final Map<String, Object> map) { // 读取Spring配置文件 ApplicationContext context = new FileSystemXmlApplicationContext( "classpath:applicaion.xml"); // 获取JmsTemplate对象 JmsTemplate jmsTemplate = (JmsTemplate) context.getBean("jmsTemplate"); // 利用 JmsTemplate 发送消息 jmsTemplate.send(new MessageCreator() { @Override public Message createMessage(Session session) throws JMSException { // 发送消息 MapMessage mapMsg = session.createMapMessage(); mapMsg.setInt("ID", (Integer) map.get("id")); mapMsg.setString("NAME", (String) map.get("name")); mapMsg.setInt("AGE", (Integer) map.get("age")); System.out.println(mapMsg); return mapMsg; } }); } /** * 测试方法 */ public static void main(String[] args) { Map<String, Object> map = new HashMap<String, Object>(); map.put("id", 10043); map.put("name", "guweiqiang43"); map.put("age", 143); SpringSender.sendMessage(map); } }
接收方代码:
package com.mycom.activemq; import java.util.Map; import org.springframework.context.ApplicationContext; import org.springframework.context.support.FileSystemXmlApplicationContext; import org.springframework.jms.core.JmsTemplate; /** * ActiviteMQ方式4:整合Spring * 消息接收方(消费者) * * @author guweiqiang */ public class SpringReceiver { /** * 接收消息 */ public static void receiveMessage() { // 读取Spring配置文件 ApplicationContext context = new FileSystemXmlApplicationContext( "classpath:applicaion.xml"); // 获取JmsTemplate对象 JmsTemplate jmsTemplate = (JmsTemplate) context.getBean("jmsTemplate"); // 利用 JmsTemplate 接收消息 while (true) { @SuppressWarnings("unchecked") Map<String, Object> map = (Map<String, Object>) jmsTemplate .receiveAndConvert(); System.out.println("ID:" + map.get("ID") + "\t NAME:" + map.get("NAME") + "\t AGE:" + map.get("AGE")); } } /** * 测试方法 */ public static void main(String[] args) { SpringReceiver.receiveMessage(); } }
启动ActiveMQ,再在本地执行上述发送方和接收方代码,运行结果如下:
发送方console:
ActiveMQMapMessage {commandId = 0, responseRequired = false, messageId = null, originalDestination = null, originalTransactionId = null, producerId = null, destination = null, transactionId = null, expiration = 0, timestamp = 0, arrival = 0, brokerInTime = 0, brokerOutTime = 0, correlationId = null, replyTo = null, persistent = false, type = null, priority = 0, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = null, marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, size = 0, properties = null, readOnlyProperties = false, readOnlyBody = false, droppable = false} ActiveMQMapMessage{ theTable = {NAME=guweiqiang43, AGE=143, ID=10043} }
接收方console:
ID:10043 NAME:guweiqiang43 AGE:143
相关推荐
在本篇《ActiveMQ实战——实现一个简易版的聊天室》中,我们将深入探讨如何利用Apache ActiveMQ构建一个简单的在线聊天应用。ActiveMQ是Apache软件基金会的一个开源项目,它是一款功能强大的消息中间件,用于在...
ActiveMQ 集群——JDBC Master Slave + Broker Cluster ActiveMQ 集群是指将多个 ActiveMQ 服务器组合在一起,以提高系统的可扩展性和可靠性。在这个集群中,我们可以使用 JDBC Master Slave 模式和 Broker Cluster...
Spring框架与ActiveMQ的集成,为开发者提供了一种高效、可靠的JMS消息处理机制。在企业级应用中,这种集成能够极大地提升系统的响应速度和容错能力,特别是在需要异步通信和分布式事务处理的场景下。下面,我们将...
而Spring框架,作为一个Java平台的全功能模块化解决方案,提供了与ActiveMQ集成的能力,让开发者能够轻松地在Spring应用中使用消息队列。本篇将深入探讨Spring与ActiveMQ的集成及其配置过程。 首先,理解Spring与...
消息队列:ActiveMQ:ActiveMQ的Spring集成.docx
标题中的“ActiveMQ与Spring集成实例之使用Maven构建”是指在Java开发环境中,通过Maven构建工具将Apache ActiveMQ消息中间件与Spring框架整合在一起的实际操作案例。这个主题涵盖了几大关键知识点: 1. **Apache ...
本文将深入探讨如何将ActiveMQ与Spring框架集成,以便在实际项目中实现高效的消息传递。 首先,我们需要理解ActiveMQ的核心功能。ActiveMQ支持多种消息协议,如OpenWire、STOMP、AMQP、MQTT等,能够处理点对点...
以下将详细介绍如何进行Spring与ActiveMQ的集成,并提供一些关键知识点。 1. **安装配置ActiveMQ** - 首先,需要下载并安装ActiveMQ服务器。可以从官方网站(https://activemq.apache.org/)获取最新版本。 - 启动...
在"activemq + jms(原生和集成spring-jms)"的主题中,我们将探讨如何使用ActiveMQ原生API以及结合Spring-JMS框架来实现消息队列的创建与使用,主要涵盖以下几个核心知识点: 1. **ActiveMQ的基本概念**:包括Broker...
本案例主要展示了如何在Spring应用中集成ActiveMQ,实现消息的发送和接收。首先,我们需要在项目中引入ActiveMQ的相关依赖。在Maven工程中,可以在pom.xml文件中添加以下依赖: ```xml <groupId>org.apache....
**ActiveMQ与Spring集成实例详解** ActiveMQ是Apache软件基金会下的一个开源项目,它是一个功能丰富的Java消息服务(JMS)提供商,支持多种协议,并且能够处理大量的并发消息传输。而Spring框架则是一个广泛使用的...
**ActiveMQ与Spring集成实例——使用消息转换器** 在企业级应用开发中,消息队列(Message Queue,MQ)作为一种解耦和异步处理的重要工具,被广泛应用。Apache ActiveMQ 是一个开源的消息中间件,它支持多种消息...
本文将深入探讨ActiveMQ 5.5.1版本与Spring框架的集成,以及如何利用Spring的模板模式简化ActiveMQ的使用。 一、ActiveMQ基础介绍 ActiveMQ是Apache软件基金会下的一个项目,遵循JMS(Java消息服务)规范,支持多种...
Spring 集成 ActiveMQ 配置是指将 Spring 框架与 ActiveMQ 消息队列集成,以实现基于 JMS(Java Message Service)的消息传递。ActiveMQ 是 Apache 软件基金会的一个开源的消息队列系统,提供了高性能、可靠的消息...
【标题】"spring,mybatis,hibernate,activemq,redis,dubbo的集成" 这个标题提及的是一个综合性的Java开发项目,它整合了多个流行的技术框架和中间件,旨在提供一个全面的后端服务解决方案。让我们逐一探讨这些...
ActiveMQ与Spring线程池整合的一个实例。 lib库没有上传。 对于实例的讲解,在竹子的论坛有我对这个实例的帖子(http://www.java2000.net/viewthread.jsp?tid=1167) lib中包含: apache-activemq-4.1.1.jar ...
标题 "activemq学习(2) spring+activemq" 暗示了这篇内容将探讨如何在Spring框架中集成ActiveMQ,一个流行的开源消息代理和消息中间件。ActiveMQ允许应用程序之间通过消息传递进行通信,而Spring则是一个广泛使用...