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> ...
随机推荐
- selenium结合sikuliX操作Flash网页
sikuli的官网地址:http://www.sikuli.org 首先下载sikuliX的jar包:https://launchpad.net/sikuli/sikulix/1.1.0 java-d ...
- NOIP2000方格取数[DP]
题目描述 设有N*N的方格图(N<=9),我们将其中的某些方格中填入正整数,而其他的方格中则放 人数字0.如下图所示(见样例): A 0 0 0 0 0 0 0 0 0 0 13 0 0 6 0 ...
- 为什么使用Sass
为什么使用Sass 作为前端(html.javascript.css)的三大马车之一的css,一直以静态语言存在,HTML5火遍大江南北了.javascript由于NODE.JS而成为目前前后端统一开 ...
- Windows Server 2016 预览版下载
下载地址: Window Server 2016 Technical Preview 3 http://care.dlservice.microsoft.com/dl/download/7/3/C/7 ...
- MySQL sql语言的笔记
3 MySQL数据库 3.1 mysql数据存储结构 先数据库,再表,再有数据 4 数据库管理 4.1 查询所有数据库 mysql> show databases; +------------- ...
- uva10160 Servicing Stations
The input consists of more than one description of town (but totally, less than ten descriptions). E ...
- javascript中String的fromCharCode()方法
前几天遇到一个bug,后端的模板引擎在输出形如: <div title="111 aaa">内容</div> 这样的内容时,无法输出' '空格,所以只能用' ...
- noi题库(noi.openjudge.cn) 1.9编程基础之顺序查找T06——T15
T06 笨小猴 描述 笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼.但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大! 这种方法的具体描述如下:假设maxn是单词 ...
- centos6-honeyd安装&配置
安装 需要装 libpcap libevent libdnet 等(!) 有些用的yum,有些下载的安装包手动安装 (wget tar configure make install 非常linux) ...
- 大数据下多流形聚类分析之谱聚类SC
大数据,人人都说大数据:类似于人人都知道黄晓明跟AB结婚一样,那么什么是大数据?对不起,作为一个本科还没毕业的小白实在是无法回答这个问题.我只知道目前研究的是高维,分布在n远远大于2的欧式空间的数据如 ...