ActiveMQ整合Spring
来源:互联网 发布:科学网 博弈 复杂网络 编辑:程序博客网 时间:2024/06/05 11:48
我是在本地windows的64位MQ, 运行win64下的activemq.bat启动消息服务器。
消息监听方
工程结构如下,创建了两个点对点消息监听对象,两个主题消息监听对象。
consumer.xml配置监听方
<!-- 消息队列链接工厂 --> <amp:connectionFactory id="amqConnectionFactory" brokerURL="tcp://localhost:61616" userName="admin" password="admin" /> <!-- spring管理jms链接工厂的工厂 --> <bean id="connectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory"> <property name="targetConnectionFactory" ref="amqConnectionFactory" /> <property name="sessionCacheSize" value="10"/> </bean> <jms:listener-container destination-type="queue" container-type="default" connection-factory="connectionFactory"> <jms:listener destination="myQueue" ref="queueReceiver1"/> <jms:listener destination="myQueue" ref="queueReceiver2"/> </jms:listener-container> <jms:listener-container destination-type="topic" container-type="default" connection-factory="connectionFactory"> <jms:listener destination="myTopic" ref="topicReceiver1"/> <jms:listener destination="myTopic" ref="topicReceiver2"/> </jms:listener-container>
启动监听器
public class AppRun { public static void main(String[] args) { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring.xml"); context.start(); System.out.println("-----消息监听方启动了------"); }}
这时,ActiveMQ 管理界面可以看到两个queue consumer, 两个topic consumer
消息发送方
用了一个简单的springMVC来 产生消息
controller
@Controller@RequestMapping(value = "/sendmessage")public class ProducerController { @Autowired private IProducer producer; @RequestMapping(value = "/queue") public void sendQueue() { producer.sendQueue("myQueue", "队列消息"); System.out.println("发了队列消息"); } @RequestMapping(value = "/topic") public void sendTopic() { producer.sendTopic("myTopic", "主题消息"); System.out.println("发了订阅消息"); }}
Service
@Servicepublic class Producer implements IProducer { @Autowired private JmsTemplate jmsQueueTemplate; @Autowired private JmsTemplate jmsTopicTemplate; public void sendQueue(String queueName, final String message) { jmsQueueTemplate.send(queueName, session -> session.createTextMessage(message) ); } public void sendTopic(String topicName, final String message) { jmsTopicTemplate.send(topicName, session -> session.createTextMessage(message) ); }}
jmsQueueTemplate, jmsTopicTemplate的配置如下
<!-- 消息队列链接工厂 --> <amp:connectionFactory id="amqConnectionFactory" brokerURL="tcp://localhost:61616" userName="admin" password="admin" /> <!-- spring管理jms链接工厂的工厂 --> <bean id="connectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory"> <property name="targetConnectionFactory" ref="amqConnectionFactory" /> <property name="sessionCacheSize" value="10"/> </bean> <!-- 点对点消息生产者 --> <bean id="jmsQueueTemplate" class="org.springframework.jms.core.JmsTemplate"> <constructor-arg ref="connectionFactory"/> <property name="pubSubDomain" value="false"/> </bean> <!-- 发布订阅消息生产者 --> <bean id="jmsTopicTemplate" class="org.springframework.jms.core.JmsTemplate"> <constructor-arg ref="connectionFactory"/> <property name="pubSubDomain" value="true"/> </bean>
其中连接工厂的配置和监听方的一致。
部署到tomcat运行以后,调用接口产生消息,监听方即可接收到消息
发送四次队列消息,发现队列消息两个监听器交替接收消息
主题消息订阅方都可以收到
源码链接 http://download.csdn.net/download/u013041642/9942264
阅读全文
0 0
- ActiveMQ(四):Spring ActiveMQ 整合
- ActiveMQ和spring整合
- Spring整合ActiveMQ
- SPRING+ACTIVEMQ+TOMCAT整合
- Spring整合activeMQ
- ActiveMQ、Spring整合学习
- activeMq整合spring
- ActiveMQ、Spring整合学习
- spring activemq quartz 整合
- SPRING JMS 整合ACTIVEMQ
- ActiveMQ整合Spring
- 【参考】spring整合activemq
- Spring整合ActiveMQ
- spring+activemq整合学习
- spring 整合 activemq 配置文件
- Spring整合ActiveMQ
- Spring与ActiveMQ整合
- ActiveMQ和spring整合
- c#多人聊天室
- 使用echarts实现动态显示折线图
- NOIP2013华容道 大爆搜
- Android N DisplayManager服务解析(二)
- 【HDU1068】Girls and Boys(最大独立集数,匈牙利算法)
- ActiveMQ整合Spring
- 虚树学习小结
- windows安装sbt以及eclipse 安装scala插件
- strongloop loopback 禁用指定API
- ros_indigo的catkin
- MD5加密
- SpringMVC起步--Hello SpringMVC
- python变量和数据类型
- HDU