SpringMVC集成ActiveMQ
来源:互联网 发布:淘宝fake鞋店 编辑:程序博客网 时间:2024/06/06 19:10
一、pom文件配置
<!-- xbean-spring --> <dependency> <groupId>org.apache.xbean</groupId> <artifactId>xbean-spring</artifactId> <version>4.3</version> </dependency> <!-- spring-jms --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jms</artifactId> <version>4.3.0.RELEASE</version> </dependency> <!-- activemq --> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-core</artifactId> <version>5.7.0</version> </dependency>
二、配置spring-activemq.xml
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:amq="http://activemq.apache.org/schema/core" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd"> <!-- ActiveMQ 连接工厂 --> <amq:connectionFactory id="amqConnectionFactory" brokerURL="${mq.broker.url}" userName="${mq.username}" password="${mq.password}"/> <!-- Spring 连接工厂 --> <bean id="connectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory"> <constructor-arg ref="amqConnectionFactory" /> <property name="sessionCacheSize" value="100" /> </bean> <!-- 定义JmsTemplate的Queue类型 --> <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate"> <constructor-arg ref="connectionFactory" /> <!-- 非pub/sub模型(发布/订阅),即队列模式 --> <property name="pubSubDomain" value="false" /> </bean> <!-- 定义消息队列(Queue) --> <bean id="queueDestination" class="org.apache.activemq.command.ActiveMQQueue"> <!-- 配置多个消息队列(多个队列名字以逗号分隔) --> <constructor-arg value="user_book_queue" /> </bean> <!-- 配置消息队列监听者(Queue) --> <bean id="queueConsumerListener" class="com.zmgj.zmxj.mq.QueueConsumerListener" /> <!-- 配置消息监听容器(Queue),配置连接工厂,监听的目标是demoQueueDestination,监听器是上面定义的监听器 --> <bean id="queueListenerContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer"> <property name="connectionFactory" ref="connectionFactory" /> <property name="destination" ref="queueDestination" /> <property name="messageListener" ref="queueConsumerListener" /> </bean></beans>
三、配置消息监听
package com.zmgj.zmxj.mq;import com.zmgj.zmxj.constant.PublicConstant;import com.zmgj.zmxj.model.MqBean;import com.zmgj.zmxj.service.IUserBookMarkService;import com.zmgj.zmxj.service.IUserBookNoteService;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Autowired;import javax.jms.JMSException;import javax.jms.Message;import javax.jms.MessageListener;import javax.jms.ObjectMessage;/** * Created by syk on 2017/9/1. */public class QueueConsumerListener implements MessageListener { private final static Logger logger = LoggerFactory.getLogger(QueueConsumerListener.class); private final String QUEUE_PREFIX = "queue://"; @Autowired private IUserBookMarkService userBookMarkService; @Autowired private IUserBookNoteService userBookNoteService; @Override public void onMessage(Message message) { try { if (null != message) { ObjectMessage objectMessage = (ObjectMessage) message; String destination = message.getJMSDestination().toString(); logger.info("目的消息队列【" + destination + "】"); switch (destination) { case QUEUE_PREFIX + PublicConstant.QUEUE_USER_BOOK: MqBean mqBean = (MqBean) objectMessage.getObject(); // 具体业务处理逻辑 break; } logger.info("------Success------"); } else { logger.info("------No producer at the moment------"); } } catch (JMSException e) { logger.error(e.getMessage(), e); } }}
四、生产者
package com.zmgj.zmxj.service.impl;import com.zmgj.zmxj.service.IProducerService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.jms.core.JmsTemplate;import org.springframework.stereotype.Service;/** * Created by syk on 2017/9/1. */@Servicepublic class ProducerServiceImpl implements IProducerService { @Autowired private JmsTemplate jmsTemplate; @Override public void sendMessage(String destination, Object msg) { jmsTemplate.convertAndSend(destination, msg); }}
阅读全文
0 0
- SpringMVC集成ActiveMQ
- [Java学习] springmvc集成activemq,消息产生
- springmvc 集成activemq引入activemq-all-5.14.4有冲突
- ActiveMq 自学(四) 集成SpringMvc+Spring框架
- springmvc框架集成activemq使用序列的一个记录
- activeMq集成
- ActiveMQ(二) ActiveMQ + spring 集成
- Spring集成ActiveMQ配置
- Spring集成ActiveMQ配置
- PHP和ActiveMQ集成
- spring activemq集成封装
- ActiveMQ和spring集成
- activemq serviceMix集成学习
- Spring 和activemq集成
- Spring集成ActiveMQ
- Spring集成ActiveMQ
- Tomcat集成ActiveMQ
- Spring集成ActiveMQ
- burp代理手机客户端不支持代理还走http协议方法
- 1009.Engima(未解)
- 逻辑回归
- Spring MVC远程连云服务器mysql的几点总结
- HDU-6201 transaction transaction transaction(树dp / 最长(短)路)
- SpringMVC集成ActiveMQ
- Gym
- POJ 1279 Art Gallery (计算几何+半平面交)
- Spring AOP实现事务和主从读写分离
- Mnist进阶
- Solr配置从Mysql导入数据到索引库
- 在ASP.NET MVC中,IE与Firefox下载文件带汉字名时乱码的解决方法
- crontab修改默认编辑器
- 对于ImportError: No module named 'mpl_toolkits.basemap'的解决办法