ActiveMQ学习笔记(二) JMS与Spring
(一)配置ConnectionFactory
如果使用连接池的话,不要忘记activemq-pool-5.6.0.jar
- <bean id="connectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory" destroy-method="stop">
- <property name="connectionFactory" ref="innerConnectionFactory" />
- </bean>
- <bean id="innerConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
- <property name="brokerURL" value="tcp://localhost:61616" />
- </bean>
(二)配置一个Destination作为默认投递目标
- <bean id="defaultDestination" class="org.apache.activemq.command.ActiveMQQueue">
- <constructor-arg index="0" value="ztgame.amt.default.queue" />
- </bean>
(三)核心JmsTemplate
- <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
- <property name="connectionFactory" ref="connectionFactory" />
- <property name="defaultDestination" ref="defaultDestination" />
- </bean>
(四)JMS事务
- <bean id="jmsTransactionManager" class="org.springframework.jms.connection.JmsTransactionManager">
- <property name="connectionFactory" ref="connectionFactory" />
- </bean>
- <tx:annotation-driven transaction-manager="jmsTransactionManager" />
(五)编写消息驱动Bean,两个接口实现一个即可
- javax.jms.MessageListener
- org.springframework.jms.listener.SessionAwareMessageListener
- package com.ztgame.amt.jms.mdp;
- import javax.jms.JMSException;
- import javax.jms.Session;
- import javax.jms.TextMessage;
- import org.springframework.jms.listener.SessionAwareMessageListener;
- import org.springframework.stereotype.Component;
- @Component("defaultMessageHandler")
- public class DefaultMessageHandler implements SessionAwareMessageListener<TextMessage> {
- public void onMessage(TextMessage message, Session session)
- throws JMSException {
- String text = message.getText();
- if (text.length() == 0) {
- System.out.println("<empty>");
- } else {
- System.out.println(text);
- }
- }
- }
(六)配置消息驱动Bean
- <!-- Message Driven POJOs -->
- <jms:listener-container connection-factory="connectionFactory">
- <jms:listener destination="ztgame.amt.default.queue" ref="defaultMessageHandler" />
- </jms:listener-container>
(七)编写测试代码
- package junit;
- import java.util.UUID;
- import javax.annotation.Resource;
- import javax.jms.JMSException;
- import javax.jms.Message;
- import javax.jms.Session;
- import org.junit.Test;
- import org.springframework.jms.core.JmsTemplate;
- import org.springframework.jms.core.MessageCreator;
- import org.springframework.test.context.ContextConfiguration;
- import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
- @ContextConfiguration({ "classpath:spring-beans.xml", "classpath:spring-jms.xml" })
- public class TestSomeService extends AbstractJUnit4SpringContextTests {
- @Resource
- private JmsTemplate jmsTempalte;
- @Test
- public void test() {
- jmsTempalte.send(new MessageCreator() {
- public Message createMessage(Session session) throws JMSException {
- return session.createTextMessage(UUID.randomUUID().toString());
- }
- });
- }
- }
- spring-jms.zip (805 Bytes)
- 下载次数: 58
ActiveMQ学习笔记(二) JMS与Spring相关推荐
- ActiveMQ学习笔记(2)——JMS消息模型
2019独角兽企业重金招聘Python工程师标准>>> 1.1 JMS模型简介 JMS支持两种消息通信模型: 点对点模型(Point to Point,P2P) 发布者/订阅者模型( ...
- Spring Boot 框架学习笔记(二)(配置文件与数据注入 yaml基本语法 JSR303数据验证 多环境切换 )
Spring Boot 框架学习笔记(二) 六.appliaction.properties配置与数据注入 6.1 `@Value`注解 测试注入数据 读取输入流 6.2 读取配置文件数据注入 单文件 ...
- Spring Security技术栈学习笔记(十三)Spring Social集成第三方登录验证开发流程介绍
开发第三方登录,我们必须首先要了解OAuth协议(本文所讲述的OAuth协议指的是OAuth2协议),本文首先简单介绍OAuth协议,然后基于Spring Social来阐述开发第三方登录需要做哪些准 ...
- motan学习笔记 二 motan架构分析
motan学习笔记 一 微博轻量级RPC框架Motan motan学习笔记 二 motan架构分析 motan学习笔记 三 motan Demo 分析 motan学习笔记 四 motan Demo 之 ...
- ActiveMQ学习笔记07 - 优缺点
2019独角兽企业重金招聘Python工程师标准>>> 优点: 可以用JDBC 虽然使用JDBC会降低ActiveMQ的性能,但是数据库一直都是开发人员最熟悉的存储介质.将消息存到数 ...
- Spring Security技术栈学习笔记(八)Spring Security的基本运行原理与个性化登录实现
正如你可能知道的两个应用程序的两个主要区域是"认证"和"授权"(或者访问控制).这两个主要区域是Spring Security的两个目标."认证&qu ...
- 码匠社区学习笔记(二)
所需资料 教程视频地址 Bootstrap spring模板 elasticsearch中文社区(想模仿的效果) 码云aAuth 获取授权用户的资料 github第三方授权文档 码匠社区学习笔记(二) ...
- springmvc学习笔记二:重定向,拦截器,参数绑定
springmvc学习笔记二:重定向,拦截器,参数绑定 Controller方法返回值 返回ModelAndView controller方法中定义ModelAndView对象并返回,对象中可添加mo ...
- qml学习笔记(二):可视化元素基类Item详解(上半场anchors等等)
原博主博客地址:http://blog.csdn.net/qq21497936 本文章博客地址:http://blog.csdn.net/qq21497936/article/details/7851 ...
最新文章
- php汉字的截取,php汉字截取
- Confluence 6 中样式化字体
- 两个tplink路由器有线桥接_tplink和腾达路由器有线桥接设置图解
- 量子计算机具有天热的,量子绝热计算
- 【算法系列之一】二叉树最小深度
- 躺枪实惨!与新冠病毒“重名”,这款墨西哥国民啤酒宣布暂停生产...
- ios 给网页传值_iOS开发—页面传值汇总
- swift 引用其他类_浅谈swift中闭包修饰符 weak?unowned? 或什么都不用
- Python3常用字符串操作
- [WARNING]考前必读?!
- java azure blobs sas_仅使用SAS令牌连接到Azure存储帐户?
- select2多选设置select多选,select2取值和赋值
- js案例:动态生成表格
- office2003安装包下载,专业版完整版官方原版!
- Python心法:numpy命令关于axis=0,axis=1,axis=2
- 加密与解密(一) -- 壳、加壳
- mac地址修改_全球首款支持电脑名称和MAC地址修改的浏览器 VMLogin超级防关联指纹浏览器 同时支持模拟真人输入,支持自定义经纬度...
- 护眼灯到底有没有护眼的效果?带你了解市面上的护眼灯真的护眼吗
- grasemonkey ajax页面,Greasemonkey 中使用 GM_xmlhttpRequest 如何在 https 页面中加载 http 资源?...
- 百度地图API实现 地址经纬度 互相转换
热门文章
- 解决Python2.7的UnicodeEncodeError: ‘ascii’ codec can’t encode异常错误
- windows防火墙命令
- [刷题]Counting Bits
- H5学习系列之Communication API
- Codeforces Round #323 (Div. 2) C. GCD Table
- Graphite在centeros 6下安装
- .NET设计模式(2):单件模式(Singleton Pattern)
- #100天计划# 2013年10月1日
- 从IEEE754标准谈C语言浮点数据类型
- C#调用浏览器的原理及实现浅析