spring事务管理(一)

spring事务管理高层抽象的主要3个接口:

PlatformTransactionManager 事务管理器

TransactionDefinition 事务定义信息(隔离、传播、超时、只读)

TransactionStatus 事务具体运行状态

一、Interface PlatformTransactionManager

Spring为不同的持久化框架提供了不同的PlatformTransactionManager.

内部继承关系如下:

二、Interface TransactionDefinition

1、事务的隔离级别:

DEFAULT:使用后端数据库默认的隔离级别

READ_UNCOMMITTED:允许读取还未提交的改变了的数据。可能导致脏、幻、不可重复读

READ_COMMITTED:允许在并发事务已经提交后读取。可防止脏读,但幻读和不可重复读仍可能发生(Oracle默认使用的隔离级别)

REPEATABLE_READ:对相同字段的多次读取是一致的,除非数据被事务本身改变。可防止脏、不可重复读,但幻读可能发生(Mysql默认使用的隔离级别)

SERIALIZABLE:完全服从ACID的隔离级别,确保不发生脏、幻、不可重复读。这在所有的隔离级别中是最慢的,它是典型的通过完全锁定在事务中涉及的数据表来完成的

2、事务的传播行为:(解决业务层方法之间的相互调用问题)

PROPAGATION_REQUIRED:支持当前事务,如果不存在就新建一个

PROPAGATION_SUPPORTS:支持当前事务,如果不存在,就不使用事务

PROPAGATION_MANDATORY:支持当前事务,如果不存在,抛出异常

PROPAGATION_REQUIRES_NEW:如果有事务存在,挂起当前事务,创建一个新的事务

PROPAGATION_NOT_SUPPORTED:以非事务方式运行,如果有事务存在,挂起当前事务

PROPAGATION_NEVER:以非事务方式运行,如果有事务存在,抛出异常

PROPAGATION_NESTED:如果当前事务存在,则嵌套事务执行

三、Interface TransactionStatus

Spring事务管理

Spring支持两种方式事务管理:

  • 编程式的事务管理(实际应用中很少使用)
  • 使用XML配置声明式事务(推荐使用,代码侵入性最小。通过AOP实现)

 后续继续介绍。

转载于:https://www.cnblogs.com/bbxy-gy/p/6125474.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值