什么是事务
事务的经典举例:
某人要在商店使用电子货币购买100元的东西,当中至少包括两个操作:
- 该人账户减少100元
- 商店账户增加100元
事务就是要确保以上两个操作 都能完成 或者 一起取消,否则就会出现100元平白消失或出现的情况。
(摘自wiki)
Spring事务的使用
Spring事务有两种方式:编程式事务管理、声明式事务管理
a. 编程式事务管理
调用getTransaction()、commit()、rollback()等事务管理相关的方法,可以进行代码块粒度的事务控制;但是对业务代码有侵入性。
b. 声明式事务管理
声明式事务采用AOP方式,业务代码无参杂事务代码。但是只能做到方法粒度
声明式事务有两种类型:1.基于 TransactionProxyFactoryBean 的声明式事务管理 , 2.基于注解 Transactional注解 的声明式事务管理
类型1,基于 TransactionProxyFactoryBean 的声明式事务管理:
- 该方式需要在xml中配置 事务管理器DataSourceTransactionManager 和 事务代理类 TransactionProxyFactoryBean,使用不方便。
类型2,基于注解 Transactional注解 的声明式事务管理:
- 配置事务注解
- 使用事务注解