什么是事务,为什么使用事务?
简单来说,事务就是一组要求同时实现,或者是同时取消的操作。以银行转账为例,A给B转账,那么这个过程包含A转出,B转入的两个过程,要完成转账,要么A和B的两个过程都完成,要么都不成功,不然就会造成账户金额出现异常,这就是一个事务。由此可见,事务的特性有:
原子性、隔离性、一致性、持久性。
Spring事务的实现接口
Spring中事务管理的接口:
Platform TransactionManager:
TransactionDefinition:提供了几个常亮定义了隔离级别和传播、超时、只读等等事务信息。在不考虑隔离级别的情况下,可能出现的问题有:脏读、不可重复读和幻读的问题。
事务的隔离级别如下:
mysql默认的隔离级别是Repeatable_Read。
事务的传播行为:解决方法间的相互调用问题。
TransactionStatus:获取事务的状态。API如下。
Spring事务的实现
Spring事务实现分为两种:
1.编程式事务管理
2.声明式事务管理
基于TransactionProxy代理的事务管理:
基于AspectJ框架的声明式事务管理:
基于注解的声明式事务管理: