`

Sping整合ActiveMQ(三.简单Queue通信)

阅读更多

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;
        }
    }
}

 

分享到:
评论

相关推荐

    Sping整合ActiveMq案例.zip

    首先,让我们了解Spring整合ActiveMQ的基础知识。Spring框架提供了对多种消息中间件的支持,包括ActiveMQ,通过其`spring-jms`模块,我们可以方便地创建消息生产者和消费者。ActiveMQ作为消息队列,负责存储和转发...

    spring整合Activemq源码

    《Spring整合ActiveMQ深度解析》 在现代企业级应用开发中,消息队列(Message Queue)扮演着重要的角色,它能够有效地实现系统间的解耦,提高系统的可扩展性和并发处理能力。Spring作为Java领域的主流框架,与...

    spring整合activemq的maven工程

    &lt;bean id="queue" class="org.apache.activemq.command.ActiveMQQueue"&gt; &lt;!-- JmsTemplate --&gt; &lt;bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate"&gt; ...

    Spring整合ActiveMQ实现队列和主题发布订阅通信

    本DEMO将展示如何通过Spring整合ActiveMQ来实现队列(Queue)和主题(Topic)两种不同的通信方式。队列遵循“先进先出”原则,每个消息只有一个消费者;而主题支持多播,允许多个消费者同时接收消息。 首先,你需要...

    Spring整合ActiveMQ实现点对点与主题发布订阅通信

    &lt;bean id="destination" class="org.apache.activemq.command.ActiveMQQueue" factory-method="createQueue"&gt; &lt;constructor-arg value="myQueue" /&gt; &lt;!-- 点对点通信的队列名称 --&gt; ``` 这里的`brokerURL`指定了...

    SpringActiveMQ.rar

    在Spring应用中整合ActiveMQ,主要涉及以下几个关键知识点: 1. **Spring JMS支持**:Spring框架提供了对JMS的全面支持,包括配置、模板、监听容器等。通过Spring的JmsTemplate,可以方便地发送和接收消息。同时,...

    activeMQ+spring整合

    将ActiveMQ与Spring整合,可以充分利用Spring的便捷性来管理和使用消息队列,使得消息的发送和接收更加简单。 首先,要进行ActiveMQ与Spring的整合,你需要在项目中引入相应的依赖。通常,这可以通过在Maven或...

    SpringBoot整合ActiveMQ+websocket.docx

    在Spring Boot应用中整合ActiveMQ和WebSocket,可以创建一个实时通信系统,使后端服务能够高效地推送消息到前端客户端。以下将详细解释这个过程的关键知识点: 1. **ActiveMQ**:Apache ActiveMQ是一个开源的消息...

    springboot2整合activemq的demo内含queue消息和topic消息

    这个“springboot2整合activemq的demo”提供了一个实际的例子,帮助开发者理解如何在Spring Boot应用中使用ActiveMQ实现消息队列的功能。以下是关于这个主题的详细知识点: 1. **Spring Boot 2**: - Spring Boot ...

    activemq-spring-1.2.jar.zip

    《ActiveMQ与Spring整合详解及1.2版本的使用》 在Java消息服务(Java Message Service,JMS)领域,Apache ActiveMQ是一个广泛使用的开源消息代理,它提供了一个高效的、可扩展的消息传递平台。而Spring框架是Java...

    spring 与ACTIVEMQ整合

    二、Spring整合ActiveMQ步骤 1. **添加依赖**:在项目中引入ActiveMQ的依赖库,通常通过Maven或Gradle的依赖管理工具进行。 2. **配置ActiveMQ服务器**:设置ActiveMQ服务器,可以是本地运行的实例,也可以是远程...

    activemq-spring-5.5.0.jar.zip

    《ActiveMQ与Spring整合——深度解析5.5.0版本》 在Java消息服务(Java Message Service,简称JMS)领域,Apache ActiveMQ是广泛使用的开源消息代理和集成框架。它支持多种协议,如OpenWire、AMQP、STOMP、MQTT等,...

    Spring整合activemq

    首先,我们要理解Spring整合ActiveMQ的核心概念。在Spring框架中,我们可以通过使用Spring的JMS模块来配置ActiveMQ。这个过程涉及到以下几个关键点: 1. **JMS配置**:在Spring的配置文件中,我们需要定义一个`...

    ActiveMQ与spring整合封装

    以上就是ActiveMQ与Spring整合封装的基本过程,通过这样的方式,我们不仅实现了全注解开发,简化了操作,还提高了系统的性能和可扩展性。在实际应用中,还可以根据需求进行更深入的定制,比如添加事务支持、错误处理...

    spring 整合 activemq 生产者和消费者 案例源码

    Spring整合ActiveMQ是Java消息服务(JMS)在Spring框架中的应用,用于实现生产者与消费者的解耦。在这个案例中,我们将深入探讨如何配置和使用这两个组件,以便于理解它们的工作原理。 首先,ActiveMQ是Apache软件...

    spring-activemq整合工程,java单独操作activemq

    在本项目中,我们将讨论如何将Spring框架与ActiveMQ消息队列进行整合,以及如何使用Java单独操作ActiveMQ。 首先,让我们理解Spring和ActiveMQ的基本概念。Spring是一个开源的应用框架,提供了AOP(面向切面编程)...

    ActiveMQ整合spring的Demo.zip

    在IT领域,消息队列...这个Demo项目将帮助开发者理解如何在实际项目中整合ActiveMQ和Spring,实现基于消息的异步通信。通过对源码的分析和实践,可以进一步掌握这两个强大的工具在分布式系统中的协同工作方式。

    springboot集成activemq实现消息接收demo

    而ActiveMQ是Apache出品的一款开源消息中间件,它遵循JMS(Java Message Service)规范,用于处理应用程序之间的异步通信。本教程将详细介绍如何在Spring Boot项目中集成ActiveMQ,实现消息接收的Demo。 首先,我们...

    Spring与ActiveMQ整合完整案例

    3. **Spring与ActiveMQ整合**:整合Spring和ActiveMQ的主要目的是利用消息队列实现服务间的通信。Spring通过JMS Template和MessageListener接口,简化了与ActiveMQ的交互。首先,我们需要在Spring配置文件中声明JMS...

Global site tag (gtag.js) - Google Analytics