Spring JMS消息处理

开发 后端
本文介绍Spring JMS消息处理,以及IBM WebSphere MQ,Spring JMS模板的介绍。

在Spring系列的第4期也是***一期中,我将介绍Spring JMS(Java消息服务)框架的特性。JMS PG定义了Java 应用程序通过面向消息的中间件(MOM)创建和交换消息的标准途径。

就像在这个系列前面的文章中一样,我将使用一个简单的示例来演示Spring JMS的特性。您将随我一道开发一个点对点的(P2P)基于消息的系统,使用Spring JMS框架通过JMS接口与IBM的WebSphere MQ集成。完成练习后,将可以通过这个系统发送和接收简单的文本消息。

在开始之前,请下载文章的源代码。请参阅参考资料访问Spring框架和IBM WebSphere MQ 5.3。还需要Apache Ant来运行示例应用程序。

Spring JMS

Spring JMS抽象框架简化了JMS API的使用,并与JMS提供者(比如 IBM 的 WebSphere MQ 5.3)平滑地集成。org.springframework.jms.core 包提供了在Spring中使用JMS的核心功能。它的模板类处理资源的创建和释放,简化了JMS的使用。

像其他大多数Spring模板类一样,JMS模板类提供了执行公共操作的helper方法。在需要更复杂应用的情况下,类把处理任务的核心委托给用户实现的回调接口。JMS 类提供了方便的方法,用来发送消息、同步地使用消息以及向用户公开JMS会话和消息的制作者。

以下JMS包和org.springframework.jms.core一起构成了Spring JMS的功能:

org.springframework.jms.support 
提供转换 JMSException 的功能。转换代码把检测到的JMSException层次结构转换成未检测到异常的镜像层次结构。 
org.springframework.jms.support.converter。
提供 MessageConverter 抽象,以在Java对象和JMS消息之间进行转换。 
org.springframework.jms.support.destination 
提供管理 JMS 目标的不同策略,比如针对JNDI中保存的目标的服务定位器。 
org.springframework.jms.connection 
提供适合在独立应用程序中使用的ConnectionFactory实现。connection还包含针对JMS的Spring PlatformTransactionManager实现。它允许把JMS作为事务性资源集成到Spring的事务管理机制中。


IBM WebSphere MQ

就像前面提到的,示例应用程序会用Spring的JMS框架通过JMS接口与IBM的WebSphere MQ集成。通过在应用程序和Web服务之间传递消息,WebSphere MQ提供了可靠的、有恢复能力的应用程序集成。它使用队列和事务性工具帮助保持消息跨网络的完整性。WebSphere MQ降低了信息丢失的风险和调和通信IT系统的需要。

WebSphere MQ在它所支持的所有平台上提供了一致的应用程序编程接口,这有助于让集成的程序可移植。除了标准接口外,WebSphere MQ 还完整实现了JMS接口,包括对发布-订阅消息传递的支持。WebSphere MQ EXPlorer工具可以远程地管理和配置整个MQ网络。管理和配置工具基于开放源码的Eclipse框架,而且是可扩展的。


Spring JMS模板


Spring框架提供了JmsTemplate的两个实现。JmsTemplate类使用JMS 1.1 API子类JmsTemplate102则使用JMS API我的示例应用程序使用的是 JmsTemplate102。

JMS模板被用来发送和接收JMS消息。Spring采用回调机制对JMS信息传递进行协调。MessageCreator回调接口用JmsTemplate中的调用代码提供的Session创建消息。为了支持JMS API更复杂的应用,回调SessionCallback向用户提供了JMS会话而callback ProdUCerCallback则公开了Session和MessageProducer组合。

【编辑推荐】

  1. Spring3.0将全面支持REST
  2. 专家Isvy谈Spring 3.0
  3. JSF与Spring的集成
  4. 详细介绍Spring事务管理
  5. Spring框架的事务管理应用分析
责任编辑:佚名 来源: 清华大学出版社
相关推荐

2009-06-17 16:39:03

Spring JMS

2009-06-25 15:33:13

Java消息服务JMS

2009-06-12 17:45:16

JMS集群JBoss集群

2010-02-22 10:01:11

WCF消息处理

2021-09-03 06:46:34

Spring 6pring Boot 项目

2021-09-15 09:02:20

Spring 6Spring BootJava

2009-08-19 15:54:33

处理C#消息

2021-05-17 16:24:58

Spring Clou

2009-12-28 11:34:22

WPF处理消息

2021-03-01 07:31:53

消息支付高可用

2009-06-16 13:25:02

JBoss和JMS

2017-02-28 08:57:41

JavaJMS队列

2022-07-04 09:15:10

Spring请求处理流程

2012-05-25 15:35:43

JMSJava

2013-12-12 16:14:21

storm入门教程storm消息处理

2011-06-23 15:32:05

Qt Windows消息

2022-08-08 10:47:41

KafkaJMSMQ

2013-11-12 23:32:53

微信公号微信公众账号

2023-09-13 08:56:51

2022-11-04 08:39:46

SpringWebFlux
点赞
收藏

51CTO技术栈公众号