ActiveMQ 与spring 整合的实例
该整合实例是在maven项目中整合,先要构建一个maven项目
第一步在maven项目的pom.xml文件中导入依赖
<!--这些依赖都是activemq和spring整合需要的依赖--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jms</artifactId> </dependency> <!-- xbean 如<amq:connectionFactory /> --> <dependency> <groupId>org.apache.xbean</groupId> <artifactId>xbean-spring</artifactId> <version>3.16</version> </dependency> <!-- activemq --> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-core</artifactId> <version>5.7.0</version> </dependency> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-pool</artifactId> </dependency>
第二步,在spring的core配置文件中配置
<!--接收和发送的配置是一样的--> <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:p="http://www.springframework.org/schema/p" xmlns:task="http://www.springframework.org/schema/task" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:amq="http://activemq.apache.org/schema/core" xmlns:jms="http://www.springframework.org/schema/jms" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd http://www.springframework.org/schema/jms http://www.springframework.org/schema/jms/spring-jms.xsd http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd"> <!-- 配置连接工厂 --> <amq:connectionFactory id="activeConnectionFactory" brokerURL="tcp://127.0.0.1:61616" userName="admin" password="admin" /> <bean id="connectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory"> <constructor-arg ref="activeConnectionFactory" /> <property name="sessionCacheSize" value="100" /> </bean> <!-- 配置目的地 --> <bean id="queueDestination" class="org.apache.activemq.command.ActiveMQQueue"> <constructor-arg index="0" value="FirstQueue" /> </bean> <!-- 配置JmsTemplate --> <bean id="JmsTemplate" class="org.springframework.jms.core.JmsTemplate"> <property name="connectionFactory" ref="connectionFactory" /> <property name="defaultDestination" ref="queueDestination" /> <property name="receiveTimeout" value="10000" /> <!-- true是topic,false是queue,默认是false,此处显示写出false --> <property name="pubSubDomain" value="false" /> </bean> </beans>
第三步、使用junit测试
//消息发送 @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(value = "classpath:/spring/spring-core.xml") public class Sender { @Resource(name = "JmsTemplate") private JmsTemplate jmsTemplate; @Test public void test() { System.out.println(jmsTemplate); System.out.println("向" + jmsTemplate.getDefaultDestination().toString() + "发送消息"); jmsTemplate.send(new MessageCreator() { @Override public Message createMessage(Session session) throws JMSException { return session.createTextMessage("发送消息"); } }); } } //消息接收 @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(value = "classpath:/spring/spring-core.xml") public class Consumer { @Resource(name = "JmsTemplate") private JmsTemplate jmsTemplate; @Resource(name = "queueDestination") private Destination destination; @Test public void test() { System.out.println(jmsTemplate); TextMessage message = (TextMessage) jmsTemplate.receive(destination); try { System.out.println("接受消息>>>>>>>>>>>" + message.getText()); } catch (JMSException e) { e.printStackTrace(); } } }
注意:使用MessageListener接收信息的配置
1、实现一个Message监听器 package com.web.consumer; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.MessageListener; import javax.jms.TextMessage; public class demoMessageListener implements MessageListener { @Override public void onMessage(Message message) { try { System.out.println("接受到消息>>>>>>>>"+((TextMessage)message).getText()); } catch (JMSException e) { e.printStackTrace(); } } } 2、在配置文件中添加如下配置 <bean id="demoMessageListener" class="com.web.consumer.demoMessageListener" /> <bean class="org.springframework.jms.listener.DefaultMessageListenerContainer"> <property name="connectionFactory" ref="connectionFactory" /> <property name="destination" ref="queueDestination" /> <property name="messageListener" ref="demoMessageListener" /> </bean>

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Spark整合Mongodb[转]
环境准备 mongodb下载 解压安装 启动mongodb服务 $MONGODB_HOME/bin/mongod--fork--dbpath=/root/data/mongodb/--logpath=/root/data/log/mongodb/mongodb.log pom依赖 org.mongodb.spark mongo-spark-connector_2.11 ${spark.version} 实例代码 objectConnAppTest{ defmain(args:Array[String]):Unit={ valspark=SparkSession.builder() .master("local[2]") .appName("ConnAppTest") .config("spark.mongodb.input.uri","mongodb://192.168.31.136/testDB.testCollection")//指定mongodb输入 .config("spark.mongodb.output.uri","mongodb://192.168....
- 下一篇
如何使用Docker安装Redis\Zookeeper\Mysql
最近准备写如何实现分布式锁的文章,实现分布式锁可以借助数据库、缓存和Zoopkpeer实现。在实现代码时就需要安装以上软件。于是就想到使用docker来简化我的安装,并可以正好学习一下Docker相关知识,本篇文章就介绍下如何使用Docker安装Mysql/Reids/Zookeeper。 关于docker的安装教程很多,不同的操作系统也不一样,这里不再赘述。如果仅是个人研究和学习,在mac上安装建议大家使用docker for mac安装,https://store.docker.com/editions/community/docker-ce-desktop-mac Docker基础概念 在使用Docker之前,我们先了解下几个Docker的核心概念 Docker Daemon Docker引擎,就是运行在后台的一个守护进程,在我们启动它之后,我们就可以通过Docker客户端发送相关Docker的命令。 Docker Images Docker镜像,这个就类似于我们在安装Windows时的镜像,只不过windows的镜像,在以前我们通常存在光盘上或者U盘里,这里的镜像我们通常会发布...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Linux系统CentOS6、CentOS7手动修改IP地址