Spring事务管理(未完待续)

事务ACID四大特性

原子性(Atomic)
事务是由一个或多个活动组成的一个工作单元
原子性确保事务中的所有操作全部发生或全部不发生
一致性(Consistent)
一旦事务完成(不管成功还是失败),系统必须确保它所建模的业务处于一致状态,现实的数据不应该被损坏
隔离性(Isolated)
事务允许多个用户对相同的数据进行操作,每个用户的操作不会与其他用户纠缠在一起。
事务应该被彼此隔离,避免同步读写相同数据的情况发生
持久性(Durable)
一旦事务完成,事务的结果应该持久化,这样能从任何的系统崩溃中恢复。这涉及到讲结果存储到数据库或其它形式的持久化存储中

ThreadLocal

Spring通过各种模版类降低了开发者使用各种数据持久技术的难度,这些模版是线程安全的。使用模版类访问底层数据,根据不同的持久化技术,需要绑定数据连接或会话等资源,而这些资源本身是非线程安全的,资源池只是解决缓存问题
对象是非线程安全的应该采用synchronized进行同步,但模版类并未采用线程同步机制,因为同步会降低并发性,影响系统性能
ThreadLocal为解决多线程并发问题提供新的解决方案,Spring事务管理的底层技术离不开它
ThreadLocal是线程的一个本地化对象。当工作于多线程中的对象使用它维护变量时,ThreadLocal为每个使用该变量的线程分配一个独立的变量副本。从线程的角度看,这个变量就是线程的本地变量
ThreadLocal基础知识
同步加锁是以时间换空间来实现线程安全(不合适高并发)
ThreadLocal是以空间换时间来实现线程安全
Spring使用ThreadLocal解决线程安全问题
Spring对事务管理的支持
Spring提供事务模版类TransactionTemplate,配合使用事务回调TransactionCallback指定具体的持久化操作就可以通过编程方式实现事务管理,而无需关注资源获取、复用、释放、事务同步和异常处理操作
Spring事务管理SPI(Service Provider Interface)的抽象层包括三个接口:
TransactionDefinition
TransactionStatus
PlatformTransactionManager
Spring提供对编码式事务和声明式事务管理的支持
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值