spring学习日志之六事务管理

本文介绍了Spring框架如何实现事务管理,并深入探讨了Spring中ThreadLocal的作用及其与线程同步机制的区别。此外,还讲解了如何利用ThreadLocal解决Bean的线程安全问题,以及Spring针对不同数据源的事务管理策略。

1,Spring事务管理的特点

Spring不但提供了和底层数据源无关的事务抽象,还提供了声明性事务的功能,可以让程序从事务代码中解放出来。事务管理必须满足的四个条件:原子性、一致性、隔离性、持久性。ThreadLocal在Spring的事务管理中起着重要作用。

2,ThreadLocal和线程同步机制的区别

名称

区别

ThreadLocal

采用以空间换取时间的方法,为每一个线程提供一份变量,做到访问并行化,对象独享化

线程同步机制

以时间换取空间的方法,访问串行化,对象共享化,只有一份变量

3,Spring使用ThreadLocal解决线程安全问题

只有无状态的Bean才可以在多线程环境下共享。在Spring中,我们绝大部分Bean都可以声明为singleton作用域,就是因为Spring对一些Bean中非线程安全对象“状态性对象”采用了ThreadLocal封装,让有状态的Bean也成为了线程安全的,因此有状态的Bean就能够以singleton的方式在多线程中正常工作。

4,Spring对不同类型数据源事务管理处理方式的区别

类型

处理方式

单数据源

直接使用底层的数据源管理事务进行处理

多数据源

借助于Java EE应用服务器的支持,通过引用应用服务器的JNDI(Java命名和目录接口)资源完成事务处理

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值