170908_Spring英文文档阅读(四)_2.2 Data Access/Integration_ spring-jms

本文介绍了Spring框架中的spring-jms模块,它提供了与Java Messaging Service (JMS)的集成。JMS是一种在分布式系统中进行异步通信的API。中间件作为系统间的桥梁,而消息中间件在可靠数据传输中扮演重要角色,允许不同平台间通信。spring-jms与spring-messaging模块协同工作,实现应用程序间的集成和协同。

这里写图片描述

谷歌翻译: spring-jms模块(Java Messaging Service)包含用于生成和使用消息的功能。 从Spring Framework 4.1起,它提供了与spring-messages模块的集成。

spring-jms module

这里写图片描述

spring-jms,Spring框架中的JMS(Java Messaging Service,既Java消息服务)那什么是Java消息服务呢,为什么需要Java消息服务?

JMS是一个Java平台中关于面向消息中间件的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。从这句话我们得到一个新的名词“消息中间件”那什么是消息中间件呢?

在了解消息中间件之前,我们或许应该对“中间件”这个词有所了解,什么是中间件?

中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件位于操作系统、网络和数据库之上,应用软件的下层,管理计算机资源和网络通讯。是连接两个独立应用程序或独立系统的软件。不同的系统,即使它们具有不同的接口,但通过中间件相互之间仍能交换信息。执行中间件的一个关键途径是信息传递。通过中间件,应用程序可以工作于多平台或OS环境。

在了解中间件之后我们来看看消息中间件

消息中间件适用于需要可靠的数据传送的分布式环境。采用消息中间件机制的系统中,不同的对象之间通过传递消息来激活对方的事件,完成相应的操作。发送者将消息发送给消息服务器,消息服务器将消息存放在若干队列中,在合适的时候再将消息转发给接收者。消息中间件能在不同平台之间通信,它常被用来屏蔽掉各种平台及协议之间的特性,实现应用程序之间的协同,其优点在于能够在客户和服务器之间提供同步和异步的连接,并且在任何时刻都可以将消息进行传送或者存储转发。

integration(集成)

it provides integration with the spring-messaging module.

什么是集成?

集成就是一些孤立的事物或元素通过某种方式改变原有的分散状态集中在一起,产生联系,从而构成一个有机整体的过程。

这里说明spring-jsm模块是和spring-messaging协同合作的。

Spring容器中,Data Access/IntegrationSpring框架的一个模块,主要用于简化数据访问层的操作,同时提供与多种数据访问技术的集成。它通过提供统一的异常层次结构、模板类等方式,减少底层代码的重复编写,并提升代码的可维护性。 ### Spring Data Access/Integration模块包含以下主要部分: 1. **JDBC (Java Database Connectivity)** - **是什么**:提供了`JdbcTemplate`等工具类,用于简化JDBC操作。 - **用途**:减少使用JDBC时的样板代码(如连接管理、异常处理),并提供更简洁的API进行数据库操作。 2. **ORM (Object-Relational Mapping)** - **是什么**:与主流ORM框架(如Hibernate、MyBatis、JPA)集成。 - **用途**:简化对象与数据库之间的映射,支持声明式事务管理,提升开发效率。 3. **OXM (Object-XML Mapping)** - **是什么**:支持将Java对象与XML文档之间进行映射。 - **用途**:处理XML数据的序列化反序列化,适用于需要处理XML的场景(如Web服务)。 4. **JMS (Java Message Service)** - **是什么**:提供与消息队列系统的集成(如ActiveMQ、RabbitMQ)。 - **用途**:支持发送接收消息,适用于异步通信解耦系统。 5. **事务管理(Transaction Management)** - **是什么**:提供声明式事务的支持,可以与JDBC、ORM等模块结合使用。 - **用途**:通过AOP实现事务的自动管理,避免手动提交或回滚事务的复杂性。 ### 使用场景 - **JDBC**:适合需要直接操作数据库的场景,但希望减少样板代码。 - **ORM**:适合需要将Java对象映射到数据库表的场景,如使用Hibernate或JPA。 - **OXM**:适合需要处理XML数据的场景,例如Web服务中的SOAP消息。 - **JMS**:适合需要异步通信或消息队列的场景。 - **事务管理**:适用于需要统一管理多个数据操作事务的场景。 ### 示例代码(JdbcTemplate) ```java import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; @Repository public class UserDao { @Autowired private JdbcTemplate jdbcTemplate; public void createUser(String name, String email) { String sql = "INSERT INTO users (name, email) VALUES (?, ?)"; jdbcTemplate.update(sql, name, email); } } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值