Sping整合ActiveMQ(一.简单Queue通信)
简单配置:只作JMSTemplate和Destination的配置,进行简单的消息传送
1.Pom文件:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>ActiveMQ-Spring2</groupId> <artifactId>ActiveMQ-Spring2</artifactId> <version>1.0-SNAPSHOT</version> <properties> <junit-version>4.10</junit-version> <slf4j-version>1.7.5</slf4j-version> <spring-version>3.2.3.RELEASE</spring-version> <jms-version>2.0</jms-version> <activemq-version>5.6.0</activemq-version> <geronimo-version>1.0.1</geronimo-version> </properties> <dependencies> <!--junit--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${junit-version}</version> </dependency> <!--slf4j--> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${slf4j-version}</version> </dependency> <!--Spring--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring-version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${spring-version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring-version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>${spring-version}</version> </dependency> <!--Spring-JMS--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jms</artifactId> <version>${spring-version}</version> </dependency> <!--Javax-JMS--> <dependency> <groupId>javax.jms</groupId> <artifactId>javax.jms-api</artifactId> <version>${jms-version}</version> </dependency> <!--ActiveMQ--> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-all</artifactId> <version>${activemq-version}</version> </dependency> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-pool</artifactId> <version>${activemq-version}</version> </dependency> <dependency> <groupId>org.apache.geronimo.specs</groupId> <artifactId>geronimo-j2ee-management_1.1_spec</artifactId> <version>${geronimo-version}</version> </dependency> </dependencies> </project>
2.Spring配置文件ApplicationContext.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" 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-2.0.xsd"> <!--创建JMS连接工厂--> <bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory"> <property name="brokerURL" value="tcp://localhost:61616"/> </bean> <!--声明ActiveMQ消息目标,目标可以是一个队列Queue,也可以是一个主题Topic--> <bean id="destination" class="org.apache.activemq.command.ActiveMQQueue"> <constructor-arg index="0" value="FirstQueue"/> </bean> <!--配置JMS模板--> <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate"> <property name="connectionFactory" ref="connectionFactory"/> <property name="defaultDestination" ref="destination"/> <!--此处可省--> </bean> </beans>
3.发送消息测试类Sender
import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.jms.core.JmsTemplate; import org.springframework.jms.core.MessageCreator; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.Session; public class Sender { public static void main(String[] args) { /*1.加载配置文件*/ ApplicationContext ctx = new ClassPathXmlApplicationContext( new String[] { "classpath:/applicationContext.xml" }); /*2.获取JmsTemplate实例对象*/ JmsTemplate template = (JmsTemplate) ctx.getBean("jmsTemplate"); /*当配置文件中的JmsTemplate的Bean中没有配置Destination的property的时候, 使用如下注释的方式*/ //Destination destination = (Destination) ctx.getBean("destination"); //template.send(destination, new MessageCreator() {......} template.send(new MessageCreator() { @Override public Message createMessage(Session session) throws JMSException { return session.createTextMessage("发送消息:Hello ActiveMQ Text Message!"); } }); System.out.println("成功发送了一条JMS消息"); } }
4.接收消息测试类Receiver
import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.jms.core.JmsTemplate; import javax.jms.JMSException; import javax.jms.TextMessage; public class Receive { public static void main(String[] args) throws JMSException { /*1.加载配置文件*/ ApplicationContext ctx = new ClassPathXmlApplicationContext( new String[] { "classpath:/applicationContext.xml" }); /*2.获取JMSTemplate实例*/ JmsTemplate jmsTemplate = (JmsTemplate) ctx.getBean("jmsTemplate"); //Destination destination = (Destination) ctx.getBean("destination"); /*开始接收消息*/ while (true) { /*当配置文件中的JmsTemplate的Bean中没有配置Destination的property的时候, 使用如下注释的方式*/ //TextMessage txtmsg = (TextMessage) template.receive(destination); TextMessage message = (TextMessage) jmsTemplate.receive(); if (null != message) { System.out.println("收到消息为:" + message.getText()); } else break; } } }
相关推荐
首先,让我们了解Spring整合ActiveMQ的基础知识。Spring框架提供了对多种消息中间件的支持,包括ActiveMQ,通过其`spring-jms`模块,我们可以方便地创建消息生产者和消费者。ActiveMQ作为消息队列,负责存储和转发...
《Spring整合ActiveMQ深度解析》 在现代企业级应用开发中,消息队列(Message Queue)扮演着重要的角色,它能够有效地实现系统间的解耦,提高系统的可扩展性和并发处理能力。Spring作为Java领域的主流框架,与...
<bean id="queue" class="org.apache.activemq.command.ActiveMQQueue"> <!-- JmsTemplate --> <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate"> ...
本DEMO将展示如何通过Spring整合ActiveMQ来实现队列(Queue)和主题(Topic)两种不同的通信方式。队列遵循“先进先出”原则,每个消息只有一个消费者;而主题支持多播,允许多个消费者同时接收消息。 首先,你需要...
<bean id="destination" class="org.apache.activemq.command.ActiveMQQueue" factory-method="createQueue"> <constructor-arg value="myQueue" /> <!-- 点对点通信的队列名称 --> ``` 这里的`brokerURL`指定了...
在Spring应用中整合ActiveMQ,主要涉及以下几个关键知识点: 1. **Spring JMS支持**:Spring框架提供了对JMS的全面支持,包括配置、模板、监听容器等。通过Spring的JmsTemplate,可以方便地发送和接收消息。同时,...
将ActiveMQ与Spring整合,可以充分利用Spring的便捷性来管理和使用消息队列,使得消息的发送和接收更加简单。 首先,要进行ActiveMQ与Spring的整合,你需要在项目中引入相应的依赖。通常,这可以通过在Maven或...
在Spring Boot应用中整合ActiveMQ和WebSocket,可以创建一个实时通信系统,使后端服务能够高效地推送消息到前端客户端。以下将详细解释这个过程的关键知识点: 1. **ActiveMQ**:Apache ActiveMQ是一个开源的消息...
这个“springboot2整合activemq的demo”提供了一个实际的例子,帮助开发者理解如何在Spring Boot应用中使用ActiveMQ实现消息队列的功能。以下是关于这个主题的详细知识点: 1. **Spring Boot 2**: - Spring Boot ...
《ActiveMQ与Spring整合详解及1.2版本的使用》 在Java消息服务(Java Message Service,JMS)领域,Apache ActiveMQ是一个广泛使用的开源消息代理,它提供了一个高效的、可扩展的消息传递平台。而Spring框架是Java...
二、Spring整合ActiveMQ步骤 1. **添加依赖**:在项目中引入ActiveMQ的依赖库,通常通过Maven或Gradle的依赖管理工具进行。 2. **配置ActiveMQ服务器**:设置ActiveMQ服务器,可以是本地运行的实例,也可以是远程...
《ActiveMQ与Spring整合——深度解析5.5.0版本》 在Java消息服务(Java Message Service,简称JMS)领域,Apache ActiveMQ是广泛使用的开源消息代理和集成框架。它支持多种协议,如OpenWire、AMQP、STOMP、MQTT等,...
首先,我们要理解Spring整合ActiveMQ的核心概念。在Spring框架中,我们可以通过使用Spring的JMS模块来配置ActiveMQ。这个过程涉及到以下几个关键点: 1. **JMS配置**:在Spring的配置文件中,我们需要定义一个`...
以上就是ActiveMQ与Spring整合封装的基本过程,通过这样的方式,我们不仅实现了全注解开发,简化了操作,还提高了系统的性能和可扩展性。在实际应用中,还可以根据需求进行更深入的定制,比如添加事务支持、错误处理...
Spring整合ActiveMQ是Java消息服务(JMS)在Spring框架中的应用,用于实现生产者与消费者的解耦。在这个案例中,我们将深入探讨如何配置和使用这两个组件,以便于理解它们的工作原理。 首先,ActiveMQ是Apache软件...
在本项目中,我们将讨论如何将Spring框架与ActiveMQ消息队列进行整合,以及如何使用Java单独操作ActiveMQ。 首先,让我们理解Spring和ActiveMQ的基本概念。Spring是一个开源的应用框架,提供了AOP(面向切面编程)...
在IT领域,消息队列...这个Demo项目将帮助开发者理解如何在实际项目中整合ActiveMQ和Spring,实现基于消息的异步通信。通过对源码的分析和实践,可以进一步掌握这两个强大的工具在分布式系统中的协同工作方式。
而ActiveMQ是Apache出品的一款开源消息中间件,它遵循JMS(Java Message Service)规范,用于处理应用程序之间的异步通信。本教程将详细介绍如何在Spring Boot项目中集成ActiveMQ,实现消息接收的Demo。 首先,我们...
3. **Spring与ActiveMQ整合**:整合Spring和ActiveMQ的主要目的是利用消息队列实现服务间的通信。Spring通过JMS Template和MessageListener接口,简化了与ActiveMQ的交互。首先,我们需要在Spring配置文件中声明JMS...