ActiveMQ结合Spring收发消息

直接使用 ActiveMQ 的方式需要重复写很多代码,且不利于管理,Spring 提供了一种更加简便的方式————Spring JMS ,通过它可以更加方便地使用 ActiveMQ。

Maven 依赖
结合Spring使用ActiveMQ的依赖如下:

ActiveMQ.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"
xmlns:amq="http://activemq.apache.org/schema/core"
xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-4.0.xsd

http://activemq.apache.org/schema/core

http://activemq.apache.org/schema/core/activemq-core-5.12.1.xsd"&gt;

&lt;!-- ActiveMQ 连接工厂 --&gt;
&lt;amq:connectionFactory id="amqConnectionFactory"
                       brokerURL="tcp://localhost:61616"
                       userName="admin"
                       password="admin" /&gt;
&lt;!-- 提高效率,配置JMS连接工厂 --&gt;
&lt;bean id="connectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory"&gt;
    &lt;constructor-arg ref="amqConnectionFactory" /&gt;
    &lt;property name="sessionCacheSize" value="100" /&gt;
&lt;/bean&gt;
&lt;!-- 定义消息队列(Queue)--&gt;

<!-- <bean id="QueueDestination" class="org.apache.activemq.command.ActiveMQQueue">
<!– 设置消息队列的名字 –>
<constructor-arg value="Queue-zy"/>
</bean>-->
<!--定义主题(Topic)-->
<bean id="topicDestination" class="org.apache.activemq.command.ActiveMQTopic">
<constructor-arg value="Topic-zy"/>
</bean>
<!-- 配置JMS模板(Queue),Spring提供的JMS工具类,利用它发送、接收消息。 -->
<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="connectionFactory" />
<property name="defaultDestination" ref="topicDestination" />
<property name="receiveTimeout" value="10000" />
<!-- true是topic,false是queue,默认是false -->
<property name="pubSubDomain" value="true" />
</bean>
<!-- 配置消息队列监听者(Queue or Topic) -->
<bean id="messageListener" class="com.service.TopicMessageListener" />
<!-- 显示注入消息监听容器,配置连接工厂,监听的目标是QueueDestination,监听器是上面定义的监听器 -->
<bean id="ListenerContainer"
class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="connectionFactory" />
<property name="destination" ref="topicDestination" />
<property name="messageListener" ref="messageListener" />
</bean>
</beans>

配置 connectionFactory
connectionFactory 是 Spring 用于创建到 JMS 服务器链接的,Spring 提供了多种 connectionFactory。

<!-- ActiveMQ 连接工厂 -->
<amq:connectionFactory id="amqConnectionFactory"
brokerURL="tcp://localhost:61616"
userName="admin"
password="admin" />
<!-- 提高效率,配置JMS连接工厂 -->
<bean id="connectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory">
<constructor-arg ref="amqConnectionFactory" />
<property name="sessionCacheSize" value="100" />
</bean>

配置Queue

<bean id="QueueDestination" class="org.apache.activemq.command.ActiveMQQueue">
<!-- 设置消息队列的名字 -->
<constructor-arg value="Queue-zy"/>
</bean>

配置Topic

<bean id="topicDestination" class="org.apache.activemq.command.ActiveMQTopic">
????????<constructor-arg value="Topic-zy"/>
</bean>

配置JMS消息模板——jmsTemplate

<!-- 配置JMS模板,Spring提供的JMS工具类,利用它发送、接收消息-->
<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="connectionFactory" />
<property name="defaultDestination" ref="QueueDestination" />
<!--<property name="defaultDestination" ref="topicDestination" />-->
<property name="receiveTimeout" value="10000" />
<property name="pubSubDomain" value="false" /><!-- true是topic,false是queue,默认是false -->
</bean>

最后,在 applicationContext.xml 中引入配置好的 ActiveMQ.xml

<import resource="ActiveMQ.xml" />

以上就是配置文件相关的,下面是具体的业务代码。

消息生产者服务

@Service
public class ProducerService {ActiveMQ结合Spring收发消息

原文地址:http://blog.51cto.com/13952955/2300818

时间: 2024-10-09 22:04:59

ActiveMQ结合Spring收发消息的相关文章

基于ActiveMQ的点对点收发消息

ActiveMQ是apache的一个开源消息引擎.可以作为即通引擎或者消息中间件引擎. 准备 下载ActiveMQ http://activemq.apache.org/download.html 进入\bin\win64双击InstallService.bat安装为系统服务.然后启动这个系统服务 访问 http://localhost:8161/admin/queues.jsp 可以看到消息队列列表 账号密码默认就是admin admin,配置在conf/jetty-realm.propert

ActiveMQ学习笔记(五)——使用Spring JMS收发消息

ActiveMQ学习笔记(四)http://my.oschina.net/xiaoxishan/blog/380446 中记录了如何使用原生的方式从ActiveMQ中收发消息.可以看出,每次收发消息都要写许多重复的代码,Spring 为我们提供了更为方便的方式,这就是Spring JMS.我们通过一个例子展开讲述.包括队列.主题消息的收发相关的Spring配置.代码.测试. 本例中,消息的收发都写在了一个工程里. 1.使用maven管理依赖包 <dependencies> <depend

ActiveMQ(06):ActiveMQ结合Spring开发

一.pom.xml与mq.properties Spring提供了对JMS的支持,需要添加Spring支持jms的包,如下: <dependency>     <groupId>org.springframework</groupId>     <artifactId>spring-jms</artifactId>     <version>4.1.7.RELEASE</version> </dependency&g

ActiveMQ与spring集成实现Queue模式

ActiveMQ可以和spring很好的集成,下面我们来看看,如何做个集成的demo. (1)pom.xml引入相关jar <!-- spring相关 begin --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <sco

ActiveMQ与Spring集成

信息发送者:HelloSender.java package edu.sjtu.erplab.springactivemq; import javax.jms.JMSException; import javax.jms.Session; import javax.jms.Destination; import javax.jms.Message; import org.springframework.context.ApplicationContext; import org.springfr

分布式-信息方式-ActiveMQ结合Spring

ActiveMQ结合 Spring开发■ Spring提供了对JMS的支持,需要添加 Spring支持jms的包,如下: <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-pool</artifactId> </dependency> <dependency> <groupId>org.springframework

JAVAEE——宜立方商城09:Activemq整合spring的应用场景、添加商品同步索引库、商品详情页面动态展示与使用缓存

1. 学习计划 1.Activemq整合spring的应用场景 2.添加商品同步索引库 3.商品详情页面动态展示 4.展示详情页面使用缓存 2. Activemq整合spring 2.1. 使用方法 第一步:引用相关的jar包. <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jms</artifactId> </dependency> &l

MingQQ Android版发布了,可以在Android手机上登录你的QQ,收发消息哦...

最近为了学习Android开发,特意将原来写的MingQQ Windows版移植到了Android上面,以此练手.通过这次练习,学习到了不少Android开发的相关知识,特别是界面开发部分. MingQQ的界面模仿了Android QQ的基本功能,虽然体验性完全比不上QQ,但目前技术有限,只能做到现在这水平了,更好的界面用户体验留待以后再提升吧. 下拉刷新目前使用了第三方开源库Android-PullToRefresh,以后再考虑替换成自己写的下拉刷新组件,并增加消息列表的右滑删除功能. 发布的

java编写微信公众账号收发消息

这两天无聊就申请了一个微信的订阅号,然后从网上搜集了些材料,通过搜集的材料使我的公众号可以接收文本消息并返回简单的文本信息.这里做下记录,日后如果要深入研究一下可以从这里捡起. 拿到订阅号后我把头像设置了一下与微信号设置了一番.对于我们来说,最好奇的莫过于它能干嘛,所以就点击了自动回复,自定义了回复内容,然后用自己微信号关注了我的订阅号.关注后,立马给我发了我自己设置的信息.顿时觉得好新奇,感觉不错,然后就是看到自定义菜单了,这东西好啊,可以自己定义菜单,说干就干,我立马设置了三个菜单(一级菜单