ActiveMQ进阶篇-整合Spring

(四) Spring整合ActiveMQ---超详细教程 Spring整合ActiveMQ环境配置Spring整合ActiveMQ之队列生产者Spring整合ActiveMQ之队列消费者三级目录 前面三节讲了ActiveMQ的安装、测试。JMS介绍以及四大组成元素,还有ActiveMQ的可靠性(持久化、事务、签收),还有Broker等等。 但是光学会还不够,我们还要把ActiveMQ应用到我们已有的框架中,如Spring和SpringBoot等等。 这一节主要学习如何在Spring中使用ActiveMQ。 环境配置 首先创建一个spring项目,在pom文件中导入 阅读详情

spring整合activemq

添加pom文件
<dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
</dependency>

添加spring的配置文件 application.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.xsd">

    <bean id="getConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
        <property name="brokerURL" value="tcp://127.0.0.1:61616" />
    </bean>

    <!-- Spring用于管理ConnectionFactory的ConnectionFactory -->
    <bean id="connectionFactory"
          class="org.springframework.jms.connection.SingleConnectionFactory">
        <!-- 目标ConnectionFactory对应产生 Connection的ConnectionFactory -->
        <property name="targetConnectionFactory" ref="getConnectionFactory" />
    </bean>


    <!--配置生产者-->
    <!-- Spring提供的JMS工具类,它可以进行消息发送、接收等 -->
    <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
        <!-- 这个connectionFactory对应的是我们定义的Spring提供的那个ConnectionFactory对象 -->
        <property name="connectionFactory" ref="connectionFactory" />
    </bean>


    <!-- 配置一对一 -->
    <bean id="queueDestination" class="org.apache.activemq.command.ActiveMQQueue">
        <constructor-arg>
            <value>spring-queue-demo</value>
        </constructor-arg>
    </bean>


    <!--配置消费者 (接收消息)-->
    <!-- 配置监听器 -->
    <bean id="queueConsumer" class="com.zero.day3.QueueConsumer" />
    <!-- 消息监听容器,属性中引用的对象要和生产者的一致 -->
    <bean class="org.springframework.jms.listener.DefaultMessageListenerContainer">
        <property name="connectionFactory" ref="connectionFactory" />
        <property name="destination" ref="queueDestination" />
        <property name="messageListener" ref="queueConsumer" />
    </bean>


</beans>
生产者
package com.zero.day3;

import org.apache.xbean.spring.context.ClassPathXmlApplicationContext;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.MessageCreator;

import javax.jms.*;

/**
 * spring整合ActiveMQ 生产者
 */
public class QueueProducer{






    public static void main(String[] args) {

            QueueProducer queueProducer = new QueueProducer();
            queueProducer.producerQueue();

    }

    public  void producerQueue () {
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("application.xml");
        JmsTemplate jmsTemplate = context.getBean(JmsTemplate.class);
        Destination queueDestination = (Destination)context.getBean("queueDestination");
        jmsTemplate.send(queueDestination, new MessageCreator() {
            public Message createMessage(Session session) throws JMSException {

                TextMessage textMessage = session.createTextMessage();
                textMessage.setText("hello  spring整合actviceMQ");
                System.out.println("生产者启动成功,发送的消息为:" + textMessage.getText());
                return textMessage;
            }
        });

    }


}

消费者
package com.zero.day3;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;
import javax.xml.soap.Text;
import java.io.IOException;

/**
 * spring整合ActviceMQ 消费者
 */
public class QueueConsumer implements MessageListener {
    public void onMessage(Message message) {
        TextMessage textMessage = (TextMessage)message;
        try {
            System.out.println("消费者接收到的消息:" + textMessage.getText());
        } catch (JMSException e) {
            e.printStackTrace();
        }

    }

    public static void main(String[] args) {
        //初始化spring容器
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("application.xml");
        //等待
        try {
            System.in.read();

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

查看生产消费情况

在这里插入图片描述

后台管理系统查看消费情况

在这里插入图片描述

结语

小编是一枚Java Coder,业余写文章,现主营微信公众号《Java患者》,喜欢的话关注我的公众号或者加我微信我们一起学习Java
在这里插入图片描述

ActiveMq_06_Spring整合ActiveMq 消费者配置了自动监听,就相当于在spring里面后台运行,有消息就运行我们实现监听类里面的方法,也就是说我们只需要启动生产者就可以了,消费者只要配置好就可以正常访问;​ 建议用我的版本,会存在一些未知的问题。写一个类来实现消息监听。 阅读详情

相关推荐

Spring整合ActiveMQ之监听器配置

简介 在EJB世界里,JMS消息最常用的功能之一是用于实现消息驱动Bean(MDB)。Spring提供了一个方法来创建消息驱动的POJO(MDP),并且不会把用户绑定在某个EJB容器上。 通常用消息监听器容器从JMS消息队列接收消息并驱动被注射进来的MDP。消息监听器容器负责消息接收的多线程处理并分发到各MDP中。一个消息侦听容器是MDP和消息提供者之间的一个中介,用来处理消息接收的注册,事务...

Hern(宋兆恒) 2937

Spring整合Activemq

spring整合activemq

m0_62946761的博客 7831

ActiveMQ整合spring实战讲解

ActiveMQ整合spring实战讲解ActiveMQ安装ActiveMQ后台介绍ActiveMQ整合spring配置pom.xml配置:spring配置定义一个生产者定义一个消费者编写测试类测试配置是否成功运行测试方法 ActiveMQ安装 windows环境: 将安装包解压至任意安装目录; 选择符合本机位数的activemq.bat,双击启动; 弹出如下dos窗口,表示acti...

weixin_41794433的博客 426

六、Spring/Spring Boot整合ActiveMQ

Spring/Spring Boot整合ActiveMQ一、Spring整合ActiveMQ1.pom.xml2.Queue - 队列2.1 applicationContext.xml2.2 生产者2.3 消费者3.Topic - 主题3.1 applicationContext.xml3.2 生产者3.3 消费者4.消费者 - 监听器4.1 编写监听器类4.2 配置监听器4.3 生产者+消费者一体二、Spring Boot整合ActiveMQ1.Queue - 队列1.1 生产者1.1.1 创建Mave

青啊青斯博客 3262

Spring Boot与ActiveMQ整合的全面指南

Redis是一种开源的内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持多种类型的数据结构,如字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets)等。Redis具备高性能、原子操作和多样化的使用场景。高性能:由于所有的数据都存储在内存中,读写操作速度快,适合需要快速读写的应用。原子操作:Redis的所有操作都是原子性的,这意味着它们要么完全被执行,要么完全不执行。持久化。

weixin_36001279的博客 981

Spring和ActiveMQ整合的完整实例

Spring和ActiveMQ整合的完整实例

《SpringBoot篇》25.SpringBoot整合ActiveMQ

简介:在先学习整合之前先了解一下ActiaveMQ,ActiveMQ是早期MQ产品之一,是使用JAVA语言编写。大部分现在的项目可能已经不使用,但是公司中的产品咱也说不准,所以还是要学习一下的。简单来说就是用作服务间的通信。Apache ActiveMQ是最流行的开源、多协议、基于Java的消息代理。它支持行业标准协议,因此用户可以在广泛的语言和平台上获得客户端选择的好处。从用JavaScript、C、C++、Python、.Net等编写的客户端连接。使用无处不在的AMQP协议集成多平台应用程序。

陈老老老板的博客 1万+

activeMQ集成SpringMVC,三种方式监听

activeMQ集成SpringMVC,三种方式监听

Spring+ActiveMQ

Spring集成ActiveMQ实现消息发送,两种消息模型和三种消息类型。

weixin_44929475的博客 1286

保姆级教程:SAP ABAPer如何为VF01销售发票和MIRO发票校验配置凭证替代(含AC_DOCUMENT BADI完整代码示例)

本文详细解析了SAP ABAP中通过AC_DOCUMENT BADI实现VF01销售发票和MIRO发票校验的凭证替代技术。从技术选型到BADI实施步骤,再到核心逻辑代码示例,为ABAP开发者提供了一套完整的解决方案,帮助应对财务部门复杂的业务需求。

weixin_30421809的博客 349

通俗易懂的图解二叉搜索树、AVL树和红黑树

搜索是一种很常见的需求,当数据较多时,如何找到目标对象时,即需要搜索查找。 那么如何快速找到目标呢,最朴素的思想就是暴力查找,一个一个对比。 显然,当数据量增大时,我们需要优化查找方法获取更快的查找速度,我们可以通过维护一个有序数组,从而实现二分查找,查找速度从O(n)降为O(longn)。 但是数组并不便于插入和删除,链表便成为了最好的选择。 既然是采用二分查找,那么不如直接按照查找的步骤维护一种数据结构,于是二叉搜索树出现了。 二叉搜索树的性质为: 若左子树不为空,则左子树上所有节点值都小于根结点值;

暗色光的博客 758

ActiveMQ —— Spring 整合 ActiveMQ

文章目录添加依赖Spring 配置文件队列生产者消费者主题修改 applicationContext.xml 文件在 Spring 里面实现消费者不启动,直接通过配置监听完成 添加依赖 <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.9.5</v

Woo_home的博客 5536

保姆级教程:用CST 2023一步步复现一个1-8GHz Vivaldi天线(含参数优化与结果分析)

本文提供了一份详细的CST 2023教程,指导读者如何从零开始设计并优化1-8GHz Vivaldi天线。内容涵盖工程设置、参数化建模、仿真加速技巧以及性能优化策略,特别适合需要实现宽带天线设计的工程师和研究人员。通过实战案例,帮助用户掌握Vivaldi天线的核心设计要点和CST高级功能应用。

weixin_30800987的博客 618

ActiveMQ整合Spring框架

前面两篇文章介绍了ActiveMQ的相关内容,本文介绍ActiveMQ和Spring的整合开发 ActiveMQ教程01(安装及基本操作) ActiveMQ教程02(基本操作和topic发布订阅) 整合Spring框架 1.相关jar包 activemq-all-5.9.0.jar aopalliance-1.0.jar commons-logging-1.2.jar spring-aop-...

波波烤鸭的博客 2743

银河麒麟V10 SP3系统下如何安全安装gcc-toolset-10(附yum仓库避坑指南)

本文详细介绍了在银河麒麟V10 SP3系统中安全部署gcc-toolset-10的完整方案。核心在于通过配置默认禁用的yum仓库(如EPKL仓库)并配合--enablerepo参数进行精准安装,有效规避依赖冲突风险,实现与系统默认GCC 7.3的稳定共存。文章还提供了多版本环境切换、系统维护及故障排查的实用指南,确保操作的可控与可逆。

h0i1j2k3l的博客 587

弱小目标检测跟踪算法研究(5) 基于顶帽变换(Top_hat)算法的红外弱小目标检测之背景抑制

基于顶帽变换(Top_hat)算法的红外弱小目标检测之背景抑制1. 前言2. 顶帽变换(Top_hat)算法3. Matlab仿真4. 小结 1. 前言 红外图像中的弱小目标,目标属性包涵“弱"和“小’’两个方面:“弱’’是指目标在红外波长上所表现出来的强度,具体反映到所拍摄的红外图像上,就是指目标的灰度值;而“小’’是指目标的尺寸大小,也就是前面所述的成像面积很小,反映到红外图像上就是指目标所占的像素数目很少。 SPIE国际光学工程学会(Societyof Photo一0ptical Instrument

sinat_34897952的博客 5291

Spring整合ActiveMQ

1.管理ActiveMQ 地址  http://localhost:8161/admin/     默认用户和密码:admin=admin 运行发送者,eclipse控制台输出,如下图:    此时,我们先看一下ActiveMQ服务器,Queues内容如下:  我们可以看到创建了一个名称为HelloWorld的消息队列,队列中有10条消息未被消费,我们也可以通过Br

逍遥飞鹤的专栏 1万+

UG NX二次开发(Python)-API函数介绍与应用实例(三)-UFLayer类操作

采用Python语言进行UG NX二次开发的帮助材料很少,采用录制的方法是一种比较容易实现的方式,但是使用UFun函数更容易上手,我们以后将逐渐的将Python-UFun的功能写进博客中,以便于有需要的人采纳和研究。本博客是为了入门需要,采用简单的创建长方体的功能来讲一下怎么使用Python语言开发。我们今天以移动长方体到某一个图层为例,讲一下UFLayer类中部分函数的使用。另外,我们长期提供UG NX二次开发的功能开发和咨询服务,有疑问可以私信博主或者在评论区讨论。

GimiGimmy 708

Spring整合ActiveMq

1、概述 多种语言和协议编写客户端。语言: Java, C, C++, C#, Ruby, Perl, Python, PHP。应用协议: OpenWire,Stomp REST,WS Notification,XMPP,AMQP 完全支持JMS1.1和J2EE 1.4规范 (持久化,XA消息,事务) 对Spring的支持,ActiveMQ可以很容易内嵌到使用Spring的系统里面去,而且也支持Spring2.0的特性 通过了常见J2EE服务器(如 Geronimo,JBoss 4, GlassFish,W

马小果v:ma-xiaoguo的博客 1011

PyTorch实战(30)——使用TorchScript和ONNX导出通用PyTorch模型

在本节中,我们将深入探讨使用 TorchScript 导出 PyTorch 模型。通过序列化,TorchScript 使模型与 Python 生态系统独立,从而使得模型可以在其他环境中加载,例如基于 C++ 的环境。我们还跨越 Torch 框架与 Python 生态的边界,研究机器学习通用开放格式 ONNX,该技术能帮助我们将 PyTorch 训练的模型导出至非 PyTorch 甚至非 Python 环境。

盼小辉丶的博客 3483

lammps教程:聚合物压缩,避免“bond atoms missing”

如果使用ms建模,聚合物的链会伸出到盒子外面,在导出data文件后,盒子外面的原子被周期性算法折叠进盒子对面,这就造成了边界附近的bond原子可能被分布到了盒子的两侧。并且,这个data文件不能使用npt系综进行压缩,npt系综必须使用周期性边界,在压缩时,bond原子同样会移动到对面的边界。所以,最好的解决办法是使用一个反射墙墙进行压缩,设置一个反射墙墙既可以实现压缩效果,也可以组织原子跨越box边界移动到对面。解决这个问题的原则只有一个:导出data时确保所有的bond原子没有跨越边界。

lammps_jiayou的博客 3819

SpringBoot整合ActiveMQ

1. springboot整合ActiveMQ提供了JmsMessagingTemplate对象作为客户端操作消息队列 2. 操作ActiveMQ需要配置ActiveMQ服务器地址,默认端口61616 3. 企业开发时通常使用监听器来处理消息队列中的消息,设置监听器使用注解@JmsListener 4. 配置jms的pub-sub-domain属性可以在点对点模型和发布订阅模型间切换消息模型

我是程序员Amin,关注我,带你学习有趣的计算机知识 1703

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Spring整合ActiveMQ教程

写在前面:这篇文章会涉及二者的整合思路,为了能够更好地读懂本文,建议最好你能够在不整合其他环境的情况下使用ActiveMQ编写简单的控制台Demo,并且能够了解JMS(Java Message Service)。当然,你也可以直接略过整合思路看整合的过程。 简介 ActiveMQ是Apache出品的一个消息队列(Message Queue)软件,它可以与诸如C#、C++、PHP、J...

mgsky1的博客 1万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

上一篇: ActiveMQ入门篇
下一篇: ActiveMQ高级篇-联合JMS详解
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值