码迷,mamicode.com
首页 > 编程语言 > 详细

ActiveMQ与Spring整合

时间:2016-02-25 17:10:30      阅读:365      评论:0      收藏:0      [点我收藏+]

标签:activemq

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



 





 

  

 

 


 


本文出自 “7619052” 博客,请务必保留此出处http://7629052.blog.51cto.com/7619052/1744999

ActiveMQ与Spring整合

标签:activemq

原文地址:http://7629052.blog.51cto.com/7619052/1744999

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!