spring中事务控制的一组API
Spring事务控制我们要明确的
第一:JavaEE体系进行分层开发,事务处理位于业务层,Spring提供了分层设计业务层的事务处理解决方案。
第二:spring框架为我们提供了一组事务控制的接口。具体在后面的第二小节介绍。这组接口是在spring-tx-5.0.2.RELEASE.jar中。
第三:spring的事务控制都是基于AOP的,它既可以使用编程的方式实现,也可以使用配置的方式实现。我们学习的重点是使用配置的方式实现。
Spring中事务控制的API介绍
PlatformTransactionManager
此接口是spring的事务管理器,它里面提供了我们常用的操作事务的方法,如下图:
我们在开发中都是使用它的实现类,如下图:
真正管理事务的对象
org.springframework.jdbc.datasource.DataSourceTransactionManager 使用Spring JDBC或iBatis 进行持久化数据时使用
org.springframework.orm.hibernate5.HibernateTransactionManager 使用Hibernate版本进行持久化数据时使用
TransactionDefinition
它是事务的定义信息对象,里面有如下方法:
事务的隔离级别
事务的传播行为
REQUIRED:如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。一般的选择(默认值)
SUPPORTS:支持当前事务,如果当前没有事务,就以非事务方式执行(没有事务)
MANDATORY:使用当前的事务,如果当前没有事务,就抛出异常
REQUERS_NEW:新建事务,如果当前在事务中,把当前事务挂起。
NOT_SUPPORTED:以非事务方式执行操作,如果当前存在事务,就把当前事务挂起
NEVER:以非事务方式运行,如果当前存在事务,抛出异常
NESTED:如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则执行REQUIRED类似的操作。
超时时间
默认值是-1,没有超时限制。如果有,以秒为单位进行设置。
是否是只读事务
建议查询时设置为只读。
TransactionStatus
此接口提供的是事务具体的运行状态,方法介绍如下图:
spring中事务控制的一组API相关推荐
- 【Spring】事务控制API
Spring事务控制需要明确 1. JavaEE体系进行分层开发,事务处理位于业务层,Spring提供了分层设计==业务层==的事务处理解决方案. 2. Spring框架提供了一组事务控制的接口.在S ...
- Spring事务专题(四)Spring中事务的使用、抽象机制及模拟Spring事务实现
前言 本专题大纲如下: 事务专题大纲 「对于专题大纲我又做了调整哈,主要是希望专题的内容能够更丰富,更加详细」,本来是想在源码分析的文章中附带讲一讲事务使用中的问题,这两天想了想还是单独写一篇并作为事 ...
- Spring中事务的使用、抽象机制及模拟Spring事务实现
本文大纲如下: Spring事务应用大纲 编程式事务 Spring提供了两种编程式事务管理的方法 使用 TransactionTemplate 或者 TransactionalOperator. 直接 ...
- 事务例子_Spring事务专题(四)Spring中事务的使用、抽象机制及模拟Spring事务实现...
Spring中事务的使用示例.属性及使用中可能出现的问题 前言 本专题大纲如下: 「对于专题大纲我又做了调整哈,主要是希望专题的内容能够更丰富,更加详细」,本来是想在源码分析的文章中附带讲一讲事务使用 ...
- spring中事务失效的几种情况
下面简单介绍下,spring中常见的事务失效的几种情况.让我们在开发的过程避免这些情况,写出正确而且优雅的代码. 文章目录 数据库引擎不支持,mysql需要InnoDB 方法必须是public的 方法 ...
- spring中的控制反转和依赖注入之间的关系
Spring中的控制反转:把new这一个过程交给了spring容器去处理. 控制反转就是将new对象这一个过程交给外部去做(即Spring)而不是自己去创建. 图中的1"控制正转" ...
- spring中事务配置的3种方式-2
http://doc.javanb.com/spring-framework-reference-zh-2-0-5/ch09s05.html http://zpchen.iteye.com/blog/ ...
- Spring AOP+事务控制
为什么80%的码农都做不了架构师?>>> AOP事务控制 applicationContext.xml配置文件 <!-- 开启AOP监听 只对当前配置文件有效 --& ...
- 轻松了解Spring中的控制反转和依赖注入
点击上方 "程序员小乐"关注公众号, 星标或置顶一起成长 每天早上8点20分, 第一时间与你相约 每日英文 When you have something you really l ...
最新文章
- (C++)1041 考试座位号
- php中并发读写文件冲突的解决方案(文件锁应用示例)
- 【亲身经验】如何在 6 个月内成为“微软 MVP”
- jQuery Mobile 1.1 : 更流畅,更快捷,更实用
- 阿里云何川:开放兼容的云,计算巢帮助合作伙伴云化升级
- Dapp开发教程四 Asch Dapp Dice Game
- c++双向列表释放_至为芯科技IP5356集成20W输出和双路TYPE-C快充输出,适用于充电宝/移动电源方案...
- 如何做一个国产数据库(二)
- Java面向对象之多态解析、final关键字
- 20145302张薇 《信息安全系统设计基础》第14周学习总结
- 在公司交了十年社保了,退休了,自己还要补交六、七万元社保,你觉得该不该补交?
- 虚拟IP技术-VIP 与 负载均衡
- DIAView 嵌入视频监控(海康威视)
- 项目管理常用的七大工具
- SD卡、SDHC卡和SDXC卡的功能及区别
- 基于JAVA高速公路收费管理计算机毕业设计源码+数据库+lw文档+系统+部署
- 下列python语句的输出结果是_下列Python语句的输出结果是
- cad图转成shp文件并把其平面坐标投影配准成大地坐标(配准针对没有底图的情况)
- oracle判断不包含,oracle查询不含括号及不含指定字符的方法
- 如何在Sqlserver 中创建非dbo 的表