Spring事务管理

1.Transactional注解

@Transactional作用:就是在当前这个方法执行开始之前来开启事务,方法执行完毕之后提交事务。如果在这个方法执行的过程当中出现了异常,就会进行事务的回滚操作。

@Transactional注解:我们一般会在业务层当中来控制事务,因为在业务层当中,一个业务功能可能会包含多个数据访问的操作。在业务层来控制事务,我们就可以将多个数据访问操作控制在一个事务范围内。

1-2.两个属性:异常回滚的属性:rollbackFor;事务传播行为:propagation

1-2-1异常回滚的属性:rollbackFor

 (1)默认情况下,只有出现RuntimeException(运行时异常)才会回滚事务。

 (2)假如我们想让所有的异常都回滚,需要来配置@Transactional注解当中的rollbackFor属性,通过rollbackFor这个属性可以指定出现何种异常类型回滚事务即@Transactional(rollbackFor=Exception.class)

 1-2-2事务传播行为:propagation

(1)我们要想控制事务的传播行为,在@Transactional注解的后面指定一个属性propagation,通过 propagation 属性来指定传播行为。

(2)事务传播行是默认值REQUIRED,表示有事务就加入,没有则新建事务

(3) @Transactional(propagation = Propagation.REQUIRES_NEW)//事务传播行为:不论是否有事务,都新建事务;当我们不希望事务之间相互影响时,可以使用该传播行为。比如:下订单前需要记录日志,不论订单保存成功与否,都需要保证日志记录能够记录成功。

你可能感兴趣的:(springboot,spring,java,数据库)