Spring事务管理回顾——基本概念
来源:互联网 发布:无锡程序员工资 编辑:程序博客网 时间:2024/05/12 19:54
BackGround:
最近一直在面试,感觉spring的事务配置问的挺多的,再扯出来好好瞅瞅,争取做到秒杀面试官。
一,事务的基本概念
什么是事务?
逻辑上的一组操作,这组操作要么全都成功,要么全都失败。例如,我购买完一个课程,要进行支付,需要首先去我的账户表中减去需要支付的金额,然后更新订单状态,支付才算是成功,那么支付跟更新订单状态就要放在一个事务里面执行,要么全成功,要么全失败,不能出现那种我买了课程,结果订单还显示我未支付,尼玛,坑爹呀。(不过宝宝真遇到过这种情况。。。)
事务的特性
原子性:事务是一个 不可分割的单位,事务中的操作要么都发生,要么都不发生。
一致性:事务前后数据的完整性必须保持一致。
隔离性:多个用户并发访问数据库的时候,一个用户的事务不能被其他用户的事务所干扰,多个并发事务之间数据要相互隔离。
持久性:一个事务一旦被提交了,它对数据库中数据的改变就是永久性的,即使数据库发生故障也不应该对其有任何影响。
二,spring中事务的API介绍
1,接口介绍
spring事务管理高层抽象主要有3个接口:
PlatformTransactionManager(事务管理器)
TransactionDefinition(事务定义信息【隔离,传播,超时,只读】)
TransactionStatus(事务具体运行状态)
2,PlatformTransactionManager
spring为不同的持久化框架选择不同的PlatformTransactionManager接口实现:
3,TransactionDefinition
在使用事务的时候,如果不考虑事务的隔离性,会引发一些安全性的问题:例如,脏读,不可重复读,幻读。
脏读:一个事务读取了另一个事务改写但还未提交的数据,如果这些数据被回滚, 则读到的数据是无效的。
不可重复读:在同一个事务里面,多次读取同一数据返回的结果有所不同。
幻读:一个事务读取了几行记录后,另一个事务插入一些记录,幻读就发生了。在后来的查询中,第一个事务就会发现有些原来没有的记录。
事务的隔离级别:
4,事务的传播行为
事务的传播行为解决了业务层方法的互相调用产生的事务如何传递的问题。
0 2
- Spring事务管理回顾——基本概念
- 事务管理( 一 )——事务管理基本概念
- Spring—事务管理
- spring事务管理—配置文件
- Spring事务管理——AOP注解事务管理
- Spring——回顾
- Spring事务管理——慕课网
- Spring事务管理—AOP/Annotation
- Spring in Action — 事务管理
- Spring备忘——事务管理(声明式事务管理)
- Spring备忘——事务管理(编程式事务管理)
- Spring学习总结(六)---Spring事务管理(一:事务回顾)
- Spring学习-28:Spring中的事务管理之事务的回顾
- 事务管理(一)事务管理基本概念
- spring学习笔记8——事务管理
- Spring注解配置事务管理——问题
- Spring整合JMS——事务管理
- Spring入门5——事务管理
- 第四届蓝桥杯决赛第四题 高僧斗法 (nim博弈 sg函数)深究
- vertica-卸载
- Board Silly(poj 1558)模拟
- c++第12周实验:运算符的重载
- Simple Game
- Spring事务管理回顾——基本概念
- db2常用命令及导入导出
- 多线程笔试面试总结(一)
- 设计模式之观察者模式(1)
- 第六次c++作业————代码篇
- 小工具--f.lux
- Java学习_修饰符
- 十七项编程比赛,你敢试试吗?
- iOS侧滑返回功能实现