SpringMVC整合ActiveMQ

spring activeMq 配置

 1      <!-- ActiveMQ 连接工厂 -->    
 2         <!-- 真正可以产生Connection的ConnectionFactory,由对应的 JMS服务厂商提供-->    
 3             <!-- 如果连接网络:tcp://ip:61616;未连接网络:tcp://localhost:61616 以及用户名,密码-->    
 4         <amq:connectionFactory id="amqConnectionFactory"    
 5             brokerURL="tcp://127.0.0.1:61616" userName="admin" password="admin"  />   
 6       
 7     <!-- spring caching连接工厂 -->  
 8     <!-- spring用于管理真正的Connectionfactory的connectionFactory -->  
 9     <bean id="connectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory">  
10         <!-- 目标ConnectionFacory对应真实的可以产生JMS Connection的ConnectionFactory -->  
11         <property name="targetConnectionFactory" ref="amqConnectionFactory"></property>  
12         <!-- Session缓存数量 -->  
13         <property name="sessionCacheSize" value="100"></property>  
14     </bean>  
15       
16     <!-- Spring JmsTemplate的消息生产者 start -->  
17       
18     <!-- 定义JmsTemplate的Queue类型 -->  
19     <bean id="jmsQueueTemplate" class="org.springframework.jms.core.JmsTemplate">  
20         <!-- 这个connectionFactory对应的是我们定义的spring提供的那个ConnectionFactory对象 -->  
21         <constructor-arg ref="connectionFactory"></constructor-arg>  
22         <!-- 非pub/sub模型(发布/订阅),即队列模式 -->    
23         <property name="pubSubDomain" value="false"></property>  
24     </bean>  
25       
26     <!-- 定义JmsTemplate的Topic类型 -->  
27     <bean id="jmsTopicTemplate" class="org.springframework.jms.core.JmsTemplate">  
28         <constructor-arg ref="connectionFactory"></constructor-arg>  
29         <!-- pub/sub模型(发布/订阅) -->  
30         <property name="pubSubDomain" value="true"></property>  
31     </bean>  
32       
33     <!-- Spring JmsTemplate 的消息生产者end-->  
34       
35     <!-- 消息消费者 start -->  
36       
37     <!-- 定义Queue监听器 -->  
38     <jms:listener-container destination-type="queue" container-type="default" connection-factory="connectionFactory" acknowledge="auto">  
39         <jms:listener destination="test.queue" ref="queueReceiver1"></jms:listener>  
40         <jms:listener destination="test.queue" ref="queueReceiver1"></jms:listener>  
41     </jms:listener-container>  
42       
43     <!-- 定义Topic监听器 -->  
44     <jms:listener-container destination-type="topic" container-type="default" connection-factory="connectionFactory" acknowledge="auto">  
45         <jms:listener destination="test.topic" ref="topicReceiver1"/>    
46                 <jms:listener destination="test.topic" ref="topicReceiver2"/>  
47     </jms:listener-container>  
48       
49     <!-- 消息消费者end -->  

 

消息生产者:

 1 @Service
 2 public class ProducerService {
 3 
 4     private final Logger LOG = LoggerFactory.getLogger(ProducerService.class);
 5 
 6     @Resource(name = "jmsTemplate")
 7     private JmsTemplate jmsTemplate;
 8 
 9     /**
10      * 向指定队列发送消息
11      */
12     public void sendMessage(Destination destination, final String msg) {
13         System.out.println("向队列" + destination.toString() + "发送了消息------------" + msg);
14         jmsTemplate.send(destination, new MessageCreator() {
15             @Override
16             public Message createMessage(Session session) throws JMSException {
17                 return session.createTextMessage(msg);
18             }
19         });
20     }
21 
22 }

 

消息消费者(不设置消息监听时):

 1 @Service
 2 public class ConsumerService {
 3     
 4     private final Logger LOG = LoggerFactory.getLogger(ConsumerService.class);
 5 
 6     @Resource(name="jmsTemplate")
 7     private JmsTemplate jmsTemplate;
 8      
 9     /**
10      * 接收消息
11      */
12     public TextMessage receive(Destination destination) {
13         TextMessage tm = (TextMessage) jmsTemplate.receive(destination);
14         try {
15             System.out.println("从队列" + destination.toString() + "收到了消息:\t"
16                     + tm.getText());
17         } catch (JMSException e) {
18             e.printStackTrace();
19         }
20         
21         return tm;
22         
23     }
24 }

 

java activeMq监听器:

 1     package com.css.cn.consumer;  
 2       
 3     import javax.jms.JMSException;  
 4     import javax.jms.Message;  
 5     import javax.jms.MessageListener;  
 6     import javax.jms.TextMessage;  
 7       
 8     import org.springframework.beans.factory.annotation.Autowired;  
 9     import org.springframework.stereotype.Component;  
10       
11     import com.css.cn.dao.ActiveInsertDao;  
12       
13     /** 
14      * 点对点消息队列监听器 
15      * @ClassName: QueueReceiver1  
16      * @author zyj  
17      * @date 2016年11月30日 下午3:17:46  
18      *  
19      * @version V1.0 
20      */  
21     @Component  
22     public class QueueReceiver1 implements MessageListener{  
23           
24         @Autowired  
25         private ActiveInsertDao activeInsert;  
26       
27         @Override  
28         public void onMessage(Message message) {  
29             // TODO Auto-generated method stub  
30             try {  
31                 String text = ((TextMessage) message).getText();  
32                 System.out.println("点对点QueueReceiver1监听器"+text);  
33                 activeInsert.insertValue(text);  
34             } catch (Exception e) {  
35                 // TODO Auto-generated catch block  
36                 e.printStackTrace();  
37             }  
38         }  
39       
40           
41     }  

 

转载于:https://www.cnblogs.com/zq-boke/p/8515834.html

一、简介 通过这个课程带大家从零开发一款功能全面的后台管理系统,包括项目搭建、功能实现到最后的Linux系统部署全过程。本课程使用SpringMVC + Spring + Mybatis作为主体框架,使用AdminLTE作为前端框架,使用主流关系型数据库Mysql作为存储数据库,使用非关系型数据库Redis作为缓存数据库,并集成SpringSecuriy安全框架做权限的动态管理,集成Swagger2自动生成接口文档,集成Druid连接池进行SQL性能监控,集成ActiveMQ消息中间件进行异步解耦,提高性能。最后使用linux系统进行服务部署,并搭建nginx反向代理服务器提高网站性能。 二、学习目标 通过本课程的学习带大家掌握SSM框架的开发流程,并熟练使用SpringSecurity做为安全框架进行权限管理,整合相关优秀的开源框架进行功能开发。还在项目中带大家学习前端相关的Jquery、Bootstrap等知识。课程结束之后希望大家能做到独立进行开发项目的目的,增强解决问题的能力,具备功能落地实现的能力。 三、课程涉及知识点 SpringMVC源码分析Mybatis源码分析通用MapperMysql数据库Redis缓存实现ActiveMQ消息中间件SpringSecurity鉴权Swagger2接口文档生成自定义注解AOP切面编程自定义过滤器Logback日志整合Druid性能监控Linux系统Nginx反向代理Ajax异步请求技术Jquery基本使用AdminLTE前端框架Chart图表-线状图和饼状图百度地图定位城市BootStrap前端框架BootStrap-Table插件BootStrap-Treeview插件Markdown编辑器403、404、500错误页面配置数据库事务消息提示插件toastr.js图片上传插件bootstrap fileinput数字滚动效果pv/uv流量统计...四、课程部分内容截图如下 1、首页 2、菜单管理 3、图床管理 4、图标管理 5、留言反馈管理 6、druid监控 7、登录日志
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值