Spring 事务管理

事务概念

1 什么事务
一组操作,要么成功,要么失败

2 事务特性
ACID

3 不考虑隔离性产生读问题
脏读,不可重复读,幻读,

4 解决读问题
(1)设置隔离级别

Spring事务管理api

1 spring事务管理两种方式
第一种 编程式事务管理(不用)

第二种 声明式事务管理
(1)基于xml配置文件实现
(2)基于注解实现

声明式事务管理(xml配置)

1 配置文件方式使用aop思想配置

第一步 配置事务管理器
这里写图片描述
第二步 配置事务增强
这里写图片描述
第三步 配置切面
这里写图片描述

声明式事务管理(注解)

第一步 配置事务管理器
这里写图片描述
第二步 开启事务注解
《tx:annotation-driven trasaction-manager = “transactionManager”/>
第三步 在要使用事务的方法所在类上面添加注解
@Transactional

声明式事务处理完全可以看出是一个具体的Spring AOP应用。
声明式事务处理的大致过程:在为事务处理配置好AOP的基础设施(比如,对应的Proxy代理对象和事务处理Interceptor拦截器对象)之后,首先需要完成对这些事务属性配置的读取,这些属性的读取处理是在TransactionInterceptor中实现的;
TransactionInterceptor是使用AOP实现声明式事务处理的拦截器,封装了Spring对声明式事务处理实现的基本过程;

TransactionAttributeSource和TransactionAttribute这两个类,他们封装了对声明式事务处理属性的识别,以及信息读入和配置。

TransactionInfo和TransactionStatus这两个对象,它们存放事务处理信息的主要数据对象,它们通过与线程的绑定(ThreadLocal)来实现事务的隔离性。TransactionInfo持有TransactionStatus,TransactionStatus掌管事务执行的详细信息,包括具体的事务对象、事务执行状态、事务设置状态。在事务的创建、启动、提交和回滚过程中,都与TransactionStatus对象中的数据打交道。具体的事务处理是由事务处理器TransactionManager来完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值