`

spring的事务管理关键概念

阅读更多

spring已经提供了声明式的事务管理模型,这主要借用了基于ioc容器实现的aop编程框架,利用类似拦截器的方式将定义需要进行事务处理的bean方法进行代理封装.

当然其核心部分还在于其自身实现的事务管理,因此这里就从编程式的事务管理开始讲起.

首先,对于事务的定义可以通过TransactionDefinition接口的实现来进行描述,当然spring已经提供了最常用的DefaultTransactionDefinition实现.这个设计的思想又不禁让人想起了ioc容器中用到的BeanDefinition以及其默认实现DefaultBeanDefinition.这样设计的主要目的在于将定义的描述对象与其每个实例进行隔离.

而对于被创建的事务对象将通过TransactionStatus来进行封装,当然该接口也有继承于AbstractTransactionStatus的默认实现DefaultTransactionStatus.因此在1个事务方法中,事务管理器将根据TransactionStatus的实例对象进行commit,rollback等操作.但这里值得1提的是,如果以
DefaultTransactionStatus为例,该类中封装了private final Object transaction对象.这里的transaction在运行期将是个SmartTransactionObject的实现对象,如JdbcTransactionObjectSupport或者DataSourceTransactionObject或者JtaTransactionObject,当然这里的DataSourceTransactionObject是个内部类,它继承了DataSourceTransactionObjectSupport.

再以DataSourceTransactionObject为例,在该类的父类DataSourceTransactionObjectSupport中,封装了private ConnectionHolder connectionHolder,而该connectionHolder对象又绑定了private Connection currentConnection.这里其实是事务实现的核心所在了,在接下来的讲述中会发现,jdbc事务的最终操作其实就委托给currentConnection来做进行相应的处理.

分享到:
评论

相关推荐

    Spring 2.0 开发参考手册

    9.5.1. 理解Spring的声明式事务管理实现 9.5.2. 第一个例子 9.5.3. 回滚 9.5.4. 为不同的bean配置不同的事务语义 9.5.5. <tx:advice/> 有关的设置 9.5.6. 使用 @Transactional 9.5.7. 插入事务操作 9.5.8. ...

    Spring-Reference_zh_CN(Spring中文参考手册)

    9.5.1. 理解Spring的声明式事务管理实现 9.5.2. 第一个例子 9.5.3. 回滚 9.5.4. 为不同的bean配置不同的事务语义 9.5.5. <tx:advice/> 有关的设置 9.5.6. 使用 @Transactional 9.5.6.1. @Transactional 有关的设置 ...

    spring chm文档

    9.5.1. 理解Spring的声明式事务管理实现 9.5.2. 第一个例子 9.5.3. 回滚 9.5.4. 为不同的bean配置不同的事务语义 9.5.5. <tx:advice/> 有关的设置 9.5.6. 使用 @Transactional 9.5.7. 插入事务操作 9.5.8. ...

    Spring中文帮助文档

    9.5.1. 理解Spring的声明式事务管理实现 9.5.2. 第一个例子 9.5.3. 回滚 9.5.4. 为不同的bean配置不同的事务语义 9.5.5. <tx:advice/> 有关的设置 9.5.6. 使用 @Transactional 9.5.7. 事务传播 9.5.8. 通知...

    Spring API

    9.5.1. 理解Spring的声明式事务管理实现 9.5.2. 第一个例子 9.5.3. 回滚 9.5.4. 为不同的bean配置不同的事务语义 9.5.5. <tx:advice/> 有关的设置 9.5.6. 使用 @Transactional 9.5.7. 事务传播 9.5.8. 通知...

    Spring.3.x企业应用开发实战(完整版).part2

    10.5.1 Spring事务管理器的应对 10.5.2 Hibernate+Spring JDBC混合框架的事务管理 10.6 特殊方法成漏网之鱼 10.6.1 哪些方法不能实施Spring AOP事务 10.6.2 事务增强遗漏实例 10.7 数据连接泄漏 10.7.1 底层连接资源...

    Spring3.x企业应用开发实战(完整版) part1

    10.5.1 Spring事务管理器的应对 10.5.2 Hibernate+Spring JDBC混合框架的事务管理 10.6 特殊方法成漏网之鱼 10.6.1 哪些方法不能实施Spring AOP事务 10.6.2 事务增强遗漏实例 10.7 数据连接泄漏 10.7.1 底层连接资源...

    整合Mybatis和Spring框架进行注解开发SSM框架的学习与应用-Java EE企业级应用开发学习记录(第十天)

    本资源记录了在Java EE企业级...这包括整合数据库连接池、事务管理、AOP等关键组件 4.项目jar包完善: 提供项目所有jar包。 5.数据库文件SQL齐全 6.注解方式和XML进行开发方式,可以帮助理解Mybatis和Spring整合方法

    Spring面试题

    Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务。通过使用 Spring AOP,不用依赖 EJB 组件,就可以将声明性事务管理集成到应用程序中。 ☆ Spring DAO:JDBC DAO 抽象层提供了有意义的异常...

    2024 最新 毕业设计 高校学生选课系统项目源码.rar

    控制反转是一种设计原则,用于减少代码间的耦合,而AOP则是一种编程范式,允许开发者将横切关注点(如事务管理、安全等)从业务逻辑中分离出来。 2. **关键策略**:Spring框架的关键策略包括低侵入性编程、松耦合和...

    数据管理平台 Apache Geode.zip

    集成 Spring 框架来加速和简化高可扩展、高并发和事务型企业级应用的开发复杂度.JTA 兼容的事务支持.集群的配置可以写到文件中和导出到其他集群中.通过HTTP做 远程集群管理.基于REST应用开发的REST APIs.滚动升级是...

    三层架构设计模式MVC和AOP面向切面编程-SSM框架的学习与应用-Java EE企业级应用开发学习记录(第九天)

    本资源将深入探讨软件开发中两个关键的设计和编程概念:三层架构设计模式(MVC)和面向切面编程(AOP)。这两个概念是现代软件开发中不可或缺的组成部分,它们有助于提高代码的可维护性、可扩展性和可重用性。通过...

    Java语言基础下载

    目录 第一章:Java开始 1 学习目标 1 Java历史 2 Java技术概述 3 Java技术的优点 3 Java虚拟机 4 类加载器 6 ...Spring事务管理 718 Spring与Struts整合 719 Spring与Hibernate整合 721 独立实践 724

    《MyEclipse 6 Java 开发中文教程》前10章

    第一章 安装配置开发环境 18 1.1系统需求 18 1.2 JDK 的下载,安装和配置(可...10.7.2 MyEclipse生成的Spring+Hibernate无法保存数据问题的解决方法2 - 用 CGLIB 来实现事务管理 258 10.7.3 Spring相关的参考资料 261

    Java测试新技术TestNG和高级概念.part2

    展示了如何测试关键代码的特征,如封装、共享状态、范围和线程安全。 展示了如何测试应用程序元素,包括Java EE APls、数据库、Web页面和XML文件。 展示了高级技术:测试部分失败、工厂、依赖关系测试、远程调用、...

    基于微服务的预付卡系统的研究与设计.docx

    2.2.3 SpringCould 微服务框架 2.2.4 消息中间件 2.2.5 自动化部署技术 2.2.6 其他技术 2.3 微服务在预付卡业务中的优势分析 2.4 改造过程中的关键问题及解决方案 2.4.1 新旧系统之间的平滑过渡 2.4.2 微服务拆分 ...

    Java测试新技术TestNG和高级概念.part1

    展示了如何测试关键代码的特征,如封装、共享状态、范围和线程安全。 展示了如何测试应用程序元素,包括Java EE APls、数据库、Web页面和XML文件。 展示了高级技术:测试部分失败、工厂、依赖关系测试、远程调用、...

    软件系统设计方案.pdf

    在设计与实现过程中,我们⼀般将执⾏视图转换为伪代码之后,再进⼀步转换为实现代 码 3.1 顾客 3.2 员⼯ 3.3 管理员 4、实现视图 、实现视图 实现视图是描述软件架构与源⽂件之间的映射关系。⽐如软件架构的静态结构...

    千方百计笔试题大全

    coreJava部分 8 1、面向对象的特征有哪些方面? 8 2、作用域public,private,protected,以及不写时的区别? 8 3、String 是最基本的数据类型吗? 8 4、float 型float f=3.4是否正确...248、在weblogic管理制台中对一个应用...

Global site tag (gtag.js) - Google Analytics