ActiveMQ与Spring整合

1.配置ConnectionFactory

ConnectionFactory是用来生产JMS连接的 spring为我们提供了多种ConnectionFactory 其中有:SingleConnectionFactory 和 CachingConnectionFactory.

xml 配置

<bean id="cachingConnectionFactory"    class="org.springframework.jms.connection.CachingConnectionFactory"/>

 不过这个并不能为我们创建JMS连接 spring只是提供管理ConnectionFactory的功能。真实生产连接的需要JMS服务商来提供 我们用的activeMQ 所以真实创建还是有 Apache activeMQ提供

 

 真正生产连接  

 <bean id="targetConnectionFactory"class="org.apache.activemq.ActiveMQConnectionFactory">

<property name="brokerURL" value="${mq.brokerURL}"></property>

<property name="userName" value="${mq.userName}"></property>

<property name="password" value="${mq.password}"></property

</bean>

注册到spring中 由spring管理

<bean id="cachingConnectionFactory"    class="org.springframework.jms.connection.CachingConnectionFactory"/>

<property name="targetConnectionFactory" ref="targetConnectionFactory"></property>

<property name="sessionCacheSize" value="30"></property>

</bean>

2.配置生产者

 生产者负责生产消息以及发送到JMS服务器。由spring提供的JMSTemplate来实现,

 因为发送消息需要知道向哪里发送 所以需要指定connectionFactory。

spring提供的JMS工具类 它可以进行消息发送、接收等


 <bean id="activeMqJmsTemplate" class="org.springframework.jms.core.JMSTemplate">

   <property name="connectionFactory" ref="cachingConnectionFactory"/>

 </bean> 

并且需要知道发送目的地 所以也要指定defaultDestination 此时有两种方式指定 一种是根据名字 (defaultDestinationName)或者 是指定bean (defaultDestination

 配置消息目的地 分为两种 一种队列目的地(点对点) 一种 点对多

 

 队列目的地点对点 

  <bean id="queueDestination" class="org.apache.activemq.command.ActiveMQQueue">

<constructor-arg>

<value>queue</value>  //构造器注入 起名为queue

</constructor-arg>

</bean>

 

主题目的地,一对多的  

 <bean id="topicDestination" class="org.apache.activemq.command.ActiveMQTopic">

<constructor-arg value="topic"/>  //构造器注入 起名为topic

 </bean>


3.消息发送Java


4.消息消费者

 消费者如何知道有消息到达了目的地了,这是通过Spring为我们封装的消息监听容器MessageListenerContainer实现。当监听到会分配给真正的监听来处理(MessageListener、  SessionAwareMessageListener)。对于监听器来说必须要知道三个事情。一:谁去监听(MessageListener、SessionAwareMessageListener) 二、监听谁 (队列目的地) 三、去哪里监

听(ConnectionFactory

 

真正的监听者 实现自己业务逻辑处理

<bean id="consumerSessionAwareMessageListener" class="com.fx.crm.webService.service.ConsumerSessionAwareMessageListener"></bean>

Java代码

spring监听容器的配置

<bean id="sessionAwareListenerContainer"  class="org.springframework.jms.listener.DefaultMessageListenerContainer">

<property name="connectionFactory" ref="cachingConnectionFactory" />

<property name="destination" ref="sessionAwareQueue" />

<property name="messageListener" ref="consumerSessionAwareMessageListener" />

</bean>

查考文档:

http://blog.csdn.net/haoxingfeng/article/details/9167895


 




  

 

 

时间: 2024-12-20 11:10:00

ActiveMQ与Spring整合的相关文章

activemq与spring整合,生产者端配置

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"     xmlns:context="http://www.springframework.org/schema/context"     xmlns:xsi="http://www.w3.org/2001

消息中间件ActiveMQ及Spring整合JMS的介绍

一 .消息中间件的基本介绍 1.1 消息中间件 1.1.1 什么是消息中间件 消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成.通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信.对于消息中间件,常见的角色大致也就有Producer(生产者).Consumer(消费者) 常见的消息中间件产品: (1)ActiveMQ ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线.ActiveMQ 是一个完全支持JMS1.

Spring整合JMS——基于ActiveMQ实现

1.1     JMS简介 JMS的全称是Java Message Service,即Java消息服务.它主要用于在生产者和消费者之间进行消息传递,生产者负责产生消息,而消费者负责接收消息.把它应用到实际的业务需求中的话我们可以在特定的时候利用生产者生成一消息,并进行发送,对应的消费者在接收到对应的消息后去完成对应的业务逻辑.对于消息的传递有两种类型,一种是点对点的,即一个生产者和一个消费者一一对应:另一种是发布/订阅模式,即一个生产者产生消息并进行发送后,可以由多个消费者进行接收. 1.2  

04.ActiveMQ与Spring JMS整合

SpringJMS使用参考:http://docs.spring.io/spring/docs/current/spring-framework-reference/html/jms.html 1.SpringJMS核心接口介绍 1.JmsTemplate JmsTemplate: 是Spring自身提供,只需向Spring容器内注册这个类即可,就可以使用JmsTemplate类对象方便的操作JMS,下面介绍他常用的方法. 注意:JmsTemplate类是线程安全的,可以在整个应用范围使用.但并

Spring整合JMS(一)——基于ActiveMQ实现

1.1     JMS简介 JMS的全称是Java Message Service,即Java消息服务.它主要用于在生产者和消费者之间进行消息传递,生产者负责产生消息,而消费者负责接收消息.把它应用到实际的业务需求中的话我们可以在特定的时候利用生产者生成一消息,并进行发送,对应的消费者在接收到对应的消息后去完成对应的业务逻辑.对于消息的传递有两种类型,一种是点对点的,即一个生产者和一个消费者一一对应:另一种是发布/订阅模式,即一个生产者产生消息并进行发送后,可以由多个消费者进行接收. 1.2  

spring 整合 ActiveMQ

1.1     JMS简介 JMS的全称是Java Message Service,即Java消息服务.它主要用于在生产者和消费者之间进行消息传递,生产者负责产生消息,而消费者负责接收消息.把它应用到实际的业务需求中的话我们可以在特定的时候利用生产者生成一消息,并进行发送,对应的消费者在接收到对应的消息后去完成对应的业务逻辑.对于消息的传递有两种类型,一种是点对点的,即一个生产者和一个消费者一一对应:另一种是发布/订阅模式,即一个生产者产生消息并进行发送后,可以由多个消费者进行接收. 1.2  

JMS实现-ActiveMQ,介绍,安装,使用,注意点,spring整合

[TOC] 缘由: 最近在用netty开发游戏服务器,目前有这样的一个场景,聊天服务器和逻辑服务器要进行消息交互,比如,某个玩家往某个公会提交了加入申请,这个申请动作是在逻辑服务器上完成的,但是要产生一条申请消息,由聊天服务器推送到对应的公会频道,目前这个申请消息就是通过jms发送到聊天服务器上,聊天服务器监听到后,推送到对应的公会频道. 下面主要介绍以下几点 - JMS简介 - 消息传递模型 - ActiveMQ介绍 - 安装使用 - spring整合JMS - 代码相关 JMS简介 J Ja

spring整合JMS - 基于ActiveMQ实现

一. 开篇语 继上一篇apache ActiveMQ之初体验后, 由于近期一直在复习spring的东西, 所以本文就使用spring整合下JMS. 二. 环境准备 1. ActiveMQ5.2.0 (activemq-all-5.2.0.jar) 2. spring2.5 (spring.jar) 3. JavaEE5 4. JDK1.6 注意: 測试前请先启动ActiveMQserver 三. 代码測试(P2P) 1. MsgSender: 消息生产者 /** * message sender

Spring整合ActiveMQ

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