Spring事务管理(未完待续)
2017-04-15 11:05
127 查看
事务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提供对编码式事务和声明式事务管理的支持
相关文章推荐
- 某度质量部测试开发面试题6(未完待续)
- 手机商务平台策划书(部分未完待续)
- 未完待续
- u.vbe脚本和U.BAT批处理源代码的分析以及防御方法(未完待续)
- JAVA问题答疑(未完待续)
- 关于接收消息的问题(尚有疑问,未完待续)
- 爱我的人和我爱的人(未完待续)
- .NET技术资料整理大全(未完待续)
- Spring事务管理----声明式:利用TransactionProxyFactoryBean生成事务代理
- style.left,offsetLeft,scrollLeft和clientLeft之间的区别(未完待续)
- spring学习笔记:spring事务管理
- 说门(未完待续)
- spring事务管理
- spring事务管理
- 如果一切都是错误(未完待续)
- spring事务管理
- AAC文件格式与解码流程(未完待续)
- Spring事务管理
- 译文:SVG1.1(第二版)-7.6 ‘transform’ 属性 --未完待续
- HP-Email Gate(HP 邮件门) again! 未完待续