1.事务的概念
事务是一组操作的集合,是一个不可分割的工作单位,这些操作要么同时成功,要么同时失败。
2.事务的操作
(1)开启事务:(一组操作开始前,开启事务)start transaction / begin;
(2)提交事务:(这组操作全部成功后提交事务) commit;
(3)回滚事务:(中间任意一个操作出现异常,回滚事务)rollback;
3.spring事务的注解
(1)注解:@Transactional
(2)位置:该注解一般作用于业务(service)层的方法上,类上,接口上
(3)作用:将当前的方法交给spring进行事务管理,方法执行前,开启事务;成功后,提交事务;出现异常后回滚事务
4.事务的属性
(1)rollbackFor 默认情况下只有出现runtimeException才会回滚。rollbackFor 属性用于控制出现何种异常类型,回滚事务。
(2)propagation(传播行为) :指的是当一个事务方法被另一个事务方法调用时,这个方法应该如何进行事务控制
如果A,B两个方法都有@Transactional注解开启了事务,当在A方法中取调用B方法时,默认的传播行为是REQUIRED,即若A方法中有事务则B方法加入A的事务当中,若A方法无事务,则B创建新的事务。如果需要两个方法同时成功或失败,则用默认的REQUIRED传播行为。如果需要B方法不受控于A方法的事务,则用REQUIRED_NEW的传播行为,开启新事务。
常见的传播行为: