ActiveMQ_监听器(四)
1
2
3
|
<!-- 消息监听容器(Queue),配置连接工厂,监听的队列是queue3,监听器是上面定义的监听器 --> <!--加载spring配置后,studentInfoHandler的onMessage方法自动运行并接收队列-->
|
二、配置文件(spring-jms.xml)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
<? xml version = "1.0" encoding = "UTF-8" ?> xsi:schemaLocation=" <!-- 启用spring mvc 注解 --> < context:component-scan base-package = "org.soa.test.activemq" /> <!-- 配置JMS连接工厂 --> < bean id = "connectionFactory" class = "org.apache.activemq.ActiveMQConnectionFactory" > <!--解决接收消息抛出异常:javax.jms.JMSException: Failed to build body from content. Serializable class not available to broke--> < property name = "trustAllPackages" value = "true" /> <!-- 是否异步发送 --> < property name = "useAsyncSend" value = "true" /> </ bean > <!--============================监听模块==============--> < bean id = "queueDestination3" class = "org.apache.activemq.command.ActiveMQQueue" > <!-- 设置消息队列的名字 --> < constructor-arg > < value >queue3</ value > </ constructor-arg > </ bean > < bean id = "studentInfoHandler" class = "org.soa.test.activemq.listeners.StudentInfoHandler" /> <!-- 消息监听容器(Queue),配置连接工厂,监听的队列是queue3,监听器是上面定义的监听器 --> <!--加载spring配置后,studentInfoHandler的onMessage方法自动运行并接收队列--> < bean id = "jmsContainer" class = "org.springframework.jms.listener.DefaultMessageListenerContainer" > < property name = "connectionFactory" ref = "connectionFactory" /> < property name = "destination" ref = "queueDestination3" /> < property name = "messageListener" ref = "studentInfoHandler" /> </ bean > </ beans > |
三、监听代码
1、监听代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
package org.soa.test.activemq.listeners; import org.soa.test.activemq.StudentInfo; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.MessageListener; import javax.jms.TextMessage; /** * Created by JamesC on 16-9-22. */ public class StudentInfoHandler implements MessageListener { //加载spring配置后,studentInfoHandler的onMessage方法自动运行并接收队列 @Override public void onMessage(Message message) { TextMessage tm = (TextMessage) message; try { System.out.println( "ConsumerMessageListener收到了文本消息:\t" + tm.getText()); } catch (JMSException e) { e.printStackTrace(); } } } |
2、测试代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
package org.soa.test.activemq.listeners; import org.junit.Test; import org.junit.runner.RunWith; import org.soa.test.activemq.queues.ProduceMsg; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import javax.jms.Destination; /** * Created by JamesC on 16-9-22. */ @RunWith (SpringJUnit4ClassRunner. class ) @ContextConfiguration ( "/spring-jms.xml" ) public class ListenerTest { @Autowired @Qualifier ( "queueDestination3" ) //配置文件中只配置了接收queueDestination3的消息 private Destination destination; @Autowired private ProduceMsg produceMsg; @Test public void sendMsg(){ produceMsg.sendMessage(destination, "----这里测试使用配置实现监听器测试消息接收" ); } } |
ActiveMQ_监听器(四)的更多相关文章
- Android的按钮单击事件及监听器四种常见的实现方式
第一种:匿名内部类作为事件监听器类<ignore_js_op>大部分时候,事件处理器都没有什么利用价值(可利用代码通常都被抽象成了业务逻辑方法),因此大部分事件监听器只是临时使用一次,所以 ...
- ListView系列(七)——Adapter内的onItemClick监听器四个arg参数 (转)
举个例子你会理解的更快:X, Y两个listview,X里有1,2,3,4这4个item,Y里有a,b,c,d这4个item.如果你点了b这个item.如下: public void onItemCl ...
- Android常见的按钮监听器实现方式
为按钮(Button)添加响应事件,需要为其设置监听器(Listener).本文总结了Android中常用的几种Button Listener. 第一种:匿名内部类作为事件监听器类 1 2 3 4 5 ...
- 4.1 Spring源码 --- 监听器的原理
目标: 1. 监听器如何使用 2. 监听器的原理 3. 监听器的类型 4. 多播器的概念和作用 5. 接口类型的监听器是如何注册的? 6. 注解类型的监听器和如何注册的? 7. 如果想在所有的bean ...
- 2015年12月10日 spring初级知识讲解(三)Spring消息之activeMQ消息队列
基础 JMS消息 一.下载ActiveMQ并安装 地址:http://activemq.apache.org/ 最新版本:5.13.0 下载完后解压缩到本地硬盘中,解压目录中activemq-core ...
- 在有EditText控件的AlertDialog对话框中自动弹出输入法
我们先回顾一下创建AlertDialog的一般步骤. 一 inflate AlertDialog的布局文件 例如,其中dlg就是我们的布局文件. View layout = LayoutIn ...
- bootstrapTable
一个详细的教程 table参数 bootstrap table使用总结 BootstrapTable使用实例 事件event 事件函数的用法: 方法1 $('#table').bootstrapTab ...
- FastAdmin 基本知识流程一栏
fastadmin进阶 安装:出现登陆页无法显示:可能是php的gd2扩展未开启 FastAdmin 在 Nginx 中的配置 用的是AdminLTE后台模板require.js.less.Bow ...
- spring整合apache-shiro的简单使用
这里不对shiro进行介绍,介绍什么的没有意义 初学初用,不求甚解,简单使用 一.导入jar包(引入坐标) <!--shiro和spring整合--> <dependency> ...
随机推荐
- 洛谷⑨月月赛Round2 P3393逃离僵尸岛[最短路]
题目描述 小a住的国家被僵尸侵略了!小a打算逃离到该国唯一的国际空港逃出这个国家. 该国有N个城市,城市之间有道路相连.一共有M条双向道路.保证没有自环和重边. K个城市已经被僵尸控制了,如果贸然闯入 ...
- Adobe Air移动开发本人体会
采用FLASH BUILD4.6开发 1.没有mx:Canvas了,s:BordContainer未经手机优化,也不敢用,只有用s:Group 2.好多控件没有了,如DropDownList,Prog ...
- gitlab两种连接方式:ssh和http配置介绍
gitlab环境部署好后,创建project工程,在本地或远程下载gitlab代码,有两种方式:ssh和http (1)ssh方式:这是一种相对安全的方式 这要求将本地的公钥上传到gitlab中,如下 ...
- 定时取数据库的schema,并推送到git服务器
写了个脚本,定时去数据库取schema,并推送到公司的git里. #daily_schema.py #/usr/bin/env python import os import datetime,tim ...
- HealthKit框架
HealthKit框架相关资料 链接: HealthKit框架参考 HealthKit开发快速入门教程之HealthKit数据的操作 HealthKit开发快速入门教程之HealthKit框架体系创建 ...
- zookeeper多节点配置
单机多节点模式 zookeeper解压, 放到 /opt/zookeeper/ 下, 同目录再放一个 server1目录, 下面建data和log两个目录用于存放数据和日志 zoo.cfg [milt ...
- BZOJ 1834 【ZJOI2010】 network 网络扩容
Description 给定一张有向图,每条边都有一个容量C和一个扩容费用W.这里扩容费用是指将容量扩大1所需的费用.求: 1. 在不扩容的情况下,1到N的最大流: 2. 将1到N的最大流增加K所需的 ...
- Windows 8.1 新增控件之 MenuFlyout
开始这篇讲解前,我们先来温习一下Flyout 的内容,当触发应用中某个Button 时会有Flyout 出现提示用户该操作接下来将会发生什么.Flyout 简单来说就是一个轻量级信息提示需要用户确认或 ...
- mybatis的物理分页:mybatis-paginator
github上有一个专门针对mybatis的物理分页开源项目:mybatis-paginator,兼容目前绝大多数主流数据库,十分好用,下面是使用步骤: 环境:struts2 + spring + m ...
- mac上远程连接windows
Microsoft 适用于 Mac 的远程桌面连接客户端 2.1.1 http://www.microsoft.com/zh-cn/download/confirmation.aspx?id=1814 ...