19.1. 简介

Spring提供了一个用于简化JMS API使用的抽象框架,并且对用户屏蔽了JMS API中1.0.2和1.1版本的差异。

JMS的功能大致上分为两块,叫做消息制造和消息消耗。JmsTemplate 用于制造消息和同步消息接收。和Java EE的事件驱动Bean风格类似,对于异步接收消息,Spring提供了一些消息侦听容器来创建消息驱动的POJO(MDP)。

消息域的统一

JMS规范有两个主要的版本,1.0.2和1.1。

JMS1.0.2定义了两种消息域,点对点(队列)和发布/订阅(主题)。JMS 1.0.2的API为每个消息域提供了一个平行的类层次结构。导致客户端应用只能使用特定消息域的JMS API。JMS 1.1引进了统一消息域的概念使这两种消息域之间功能和客户端API的差别尽可能小。举个已消除的功能差异的例子,如果你使用的是JMS 1.1的消息供应者,你可以使用同一个 Session 事务性地在一个域消耗了一个消息后并且在另一个域中产生一个消息。

注意

JMS 1.1的规范发布于2002年4月,并且在2003年11月成为J2EE 1.4的一个组成部分,结果,现在基于J2EE1.3的应用服务器还在大量使用(例如BEA WebLogic 8.1和IBM WebSphere 5.1)),它们只支持JMS 1.0.2的规范。

org.springframework.jms.core 包提供使用JMS的核心功能。

就象为JDBC提供的 JdbcTemplate 一样,它提供了JMS模板类来处理资源的创建和释放以简化JMS的使用。Spring模板类的公共设计原则就是通过提供助手方法去执行公共的操作,并将实际的处理任务委派到用户实现的回调接口上,从而完成更复杂的操作。JMS模板也遵循这样的设计原则。这些类提供众多便利的方法来发送消息、同步接收消息、使用户可以接触到JMS session和消息产生者。

org.springframework.jms.support 包提供JMSException的转换功能。它将受控的 JMSException异常层次转换到一个对应的非受控异常层次。任何受控javax.jms.JMSException异常的子类都被包装在非受控UncategorizedJmsException异常里。

org.springframework.jms.support.converter 包提供一个 MessageConverter 用来抽象Java对象和JMS消息之间的转换操作。

org.springframework.jms.support.destination 包为管理JMS目的地提供多种策略,例如为存储在JNDI中的目的地提供一个服务定位器。

最后,org.springframework.jms.connection 包提供一个适合在独立应用中使用的

ConnectionFactory 的实现。它还为JMS提供了一个Spring的 PlatformTransactionManager 的实现(现在叫做 JmsTransactionManager)。

这样可以把JMS作为一个事务资源无缝地集成到Spring的事务管理机制中去。

java jms框架_JMS (Java Message Service)相关推荐

  1. Java 集合框架分析:JAVA集合中的一些边边角角的知识

    相关文章: Java 集合框架分析:Set http://blog.csdn.net/youyou1543724847/article/details/52733723 Java 集合框架分析:Lin ...

  2. java jms 框架_Apache RocketMQ之JMS基本概念及使用

    1.png Apache RocketMQ之JMS基本概念及使用 Apache RocketMQ 系列: 优秀博客: 介绍流程: 8.png RocketMQ 是什么? 是一个队列模型的消息中间件,具 ...

  3. java jms activemq_JMS-ActiveMQ与Java消息服务

    JMS:Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间或分布式系统中发送消息,进行异步通. ...

  4. java集合框架容器 java框架层级 继承图结构 集合框架的抽象类 集合框架主要实现类...

    本文关键词: java集合框架  框架设计理念  容器 继承层级结构 继承图 集合框架中的抽象类  主要的实现类 实现类特性   集合框架分类 集合框架并发包 并发实现类 什么是容器? 由一个或多个确 ...

  5. Java集合框架之 Java HashMap 源码解析

    继上一篇文章Java集合框架综述后,今天正式开始分析具体集合类的代码,首先以既熟悉又陌生的HashMap开始. 签名(signature) public class HashMap<K,V> ...

  6. java异步框架feed,Java:IO流里面的BuffeedReader

    键盘输入数据的标准格式 代码如下: import java.io.BufferedReader; import java.io.InputStreamReader; /** * 键盘输入数据的标准格式 ...

  7. java jms例子_JMS 教程 学习笔记 (九)JMS 样例代码

    本章给出了一些展示JMS 客户端如何使用JMS API 的代码样例.也解释了如何使用几个消息类型.这些例子使用了支持统一消息模型的方法:这些例子使用点对点或发布/订阅进行工作.用JMS API 进行工 ...

  8. -1-3 java集合框架基础 java集合体系结构 Collection 常用java集合框架 如何选择集合 迭代器 泛型 通配符概念 Properties 集合 迭代器...

    集合又称之为容器存储对象的一种方式 •数组虽然也可以存储对象,但长度是固定的:显然需要可变长度的容器 集合和数组的区别?                 A:长度区别                  ...

  9. java jquery 框架_[Java教程]小谈Jquery框架

    [Java教程]小谈Jquery框架 0 2013-12-23 18:01:16 现在Jquery框架对于开发人员基本上是无人不知,无人不晓了,用起来十分的方便,特别是选择器十分强大,提高了我们的开发 ...

最新文章

  1. 【Java】字符串(一)
  2. IBatis.Net学习笔记六--再谈查询
  3. 关系数据库的查询建表
  4. [模板]洛谷T3379 最近公共祖先(LCA) 倍增+邻接表
  5. 先天性异常或智力残疾儿童患者的外显子组和基因组测序:美国医学遗传学与基因组学学院循证临床指南...
  6. android设置图片自适应控件大小
  7. string与byte[]之间的转换
  8. 算法5-7:区间检索
  9. php exif 扩展
  10. VC中cl.exe命令参数详解
  11. CES 2022|Mobileye推出为自动驾驶汽车打造的全新EyeQ Ultra系统集成芯片
  12. Springboot整合Drools规则引擎
  13. Javashop电商系统7.1.5源码,Java电商系统源码分享
  14. 全网最全最细的jmeter接口测试教程以及接口测试流程详解
  15. 网站流量的统计中的IP、PV、UV
  16. flutter微信登录与支付(二)
  17. r语言在linux怎么实现,如何在linux环境下使用r语言
  18. HTML制作简单交互网页
  19. cmpp2.0 php,174短信发送状态回执错误码、返回值信息、错误原因
  20. Java——抽签、生日蜡烛

热门文章

  1. 数组实现链表和双链表
  2. 小程序 炫酷的海报进入首页
  3. Layui-开关按钮
  4. Rust 11:错误处理(Option<T>、Result<T,E>、panic、catch_unwind)
  5. ios禁止网页放大缩小
  6. idea设置中文界面_IntelliJ IDEA这样设置,用起来不仅顺手而且特爽
  7. 地理定位营销有哪些不同类型?
  8. Android Support Library v4、v7、v13
  9. amd同步多线程_AMD发布锐龙3 3300X/3100:首次实现同步多线程
  10. 程序员作图软件-推荐