标签: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
原文地址:http://7629052.blog.51cto.com/7619052/1744999