Spring JMS与ActiveMQ通讯示列
来源:互联网 发布:商标图形设计软件 编辑:程序博客网 时间:2024/05/22 09:07
首先是spr-mq.xml的配置
<!-- 配置JMS连接工厂 --><bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory"> <property name="brokerURL" value="failover:(tcp://${sys.mq})"/></bean>
//如果你需要多种类型的数据放入各自的队列,则再按下面队列的定义再定义队列则可。下面的bean的命名不同即可。即就是定义多个队列。
<!-- 定义你的队列 start --><!--设置消息队列的名字,即队列的目的地--><bean id="queueDestination" class="org.apache.activemq.command.ActiveMQQueue"> <constructor-arg value="queueDestination" /></bean><!-- Spring提供的JMS工具类,它可以进行消息发送、接收等 --><bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate"> <property name="connectionFactory" ref="connectionFactory" /> <property name="defaultDestination" ref="queueDestination" /> <property name="receiveTimeout" value="10000" /></bean><!-- queueDestinationGetDeviceOperate 消息生成者 --><bean id="mqProducerService" class="com.coocaa.activemq.MqProducerService"> <property name="jmsTemplate" ref="jmsTemplate" /></bean><!-- 消息监听者 --><bean id="queueMessageListener" class="com.web.queque.QueueMessageListener" /><!-- 消息监听容器 --><bean id="jmsContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer"> <property name="connectionFactory" ref="connectionFactory" /> <property name="destination" ref="queueDestination" /> <property name="messageListener" ref="queueMessageListener" /></bean><!-- 定义你的队列end -->
发送消息:
在你需要发送消息的类里面注入:
@Resource(name = "mqProducerService")MqProducerService mqProducerService;@Resource(name = "queueDestination")Destination queueDestination;
需要发送的数据:
Map<String,Object> map = new HashMap<String, Object>();map.put("param", param);mqProducerService.sendMessage(queueDestination, JSONObject.fromObject(map).toString());
对
MqProducerService.java:
public class MqProducerService { private JmsTemplate jmsTemplate; /** * 消息生产者代码 * 向指定队列发送消息 */ public void sendMessage(Destination destination, final String msg) { System.out.println("向队列" + destination.toString() + "发送了消息------------" + msg); jmsTemplate.send(destination, new MessageCreator() { public Message createMessage(Session session) throws JMSException { return session.createTextMessage(msg); } }); } /** * 向默认队列发送消息 */ public void sendMessage(final String msg) { String destination = jmsTemplate.getDefaultDestination().toString(); System.out.println("向队列" +destination+ "发送了消息------------" + msg); jmsTemplate.send(new MessageCreator() { public Message createMessage(Session session) throws JMSException { return session.createTextMessage(msg); } }); } public void setJmsTemplate(JmsTemplate jmsTemplate) { this.jmsTemplate = jmsTemplate; } }
监听器接受队列数据:
QueueMessageListener.java
public class QueueMessageListener implements MessageListener{ @Override public void onMessage(Message message) { TextMessage textMessage = (TextMessage) message; try { System.out.println("QueueMessageListenerGetDeviceOperate 收到了文本消息:"+textMessage.getText()); JSONObject jsonObject = JSONObject.fromObject(textMessage.getText()); Map<String ,Object> map = JSONObject.fromObject(jsonObject); String param = map.get("param").toString(); JSONObject jsonObjectParam = JSONObject.fromObject(param); try { //你需要处理的逻辑 }catch (Exception e){ System.out.println("QueueMessageListenerGetDeviceOperate 出错:"+e.getMessage()); e.printStackTrace(); } } catch (JMSException e) { e.printStackTrace(); } }}
0 0
- Spring JMS与ActiveMQ通讯示列
- JMS-ActiveMq与Spring整合
- ActiveMQ学习笔记(二) JMS与Spring
- jms activeMQ与spring集成进阶篇
- jms activeMQ与spring的集成
- jms activeMQ与spring的集成
- Spring与ActiveMQ(JMS)的整合说明
- jms activeMQ与spring集成进阶篇
- Spring+ActiveMQ JMS實現
- jms+spring+activemq配置
- spring jms activemq
- SPRING JMS 整合ACTIVEMQ
- spring boot jms activemq
- activeMQ--spring jms
- JMS与ActiveMQ
- jms activeMQ与spring集成进阶篇(转载)
- (七)jms activeMQ与spring的集成
- JMS之ActiveMQ(含与Spring集成使用)
- 匿名内部类小总结
- pandas入门(一)
- QT学习笔记:应用程序主窗口
- Docker搭建disconf环境,三部曲之二:本地快速构建disconf镜像
- vue 单页项目教程--微信公众号(第一站部署环境)
- Spring JMS与ActiveMQ通讯示列
- 不要购买小厂家的电池型GPS追踪器
- 矩形覆盖
- Word2010如何从正文开始设置页码
- nyoj_739笨蛋的难题(四)
- JAVA Hibernate工作原理及为什么要用
- PCD(点云数据)文件格式
- 剑指offer 43. n个骰子的点数
- POJ 2243 Knight Moves(A*算法)