Spring5框架学习:声明式事务参数配置(传播行为和隔离级别)(二十一)

1、在service类上面添加注解@Transactional,在这个注解里面可以配置事务相关参数

file

2、propagation:事务传播行为

(1)多事务方法直接进行调用,这个过程中事务是如何进行管理的

file

@Service
@Transactional(propagation = Propagation.REQUIRED)
public class TransferService {
}

3、ioslation:事务隔离级别

(1)事务有一个特性 被称为隔离性,多事务操作之间不会产生影响。
不考虑隔离性产生很多问题
(2)有三个读问题:脏读、不可重复读、虚(幻)读
(3)脏读:一个未提交事务 读取到 令一个未提交事务的数据(不能发生-严重问题)

(4)不可重复读:一个未提交事务读取到另一已提交事务修改数据(一种现象-尽量避免)

file

(5)虚读:一个未提交事务读取到另一 已提交事务添加数据
(6)解决:通过设置事务隔离级别,解决读问题


设置

@Service
@Transactional(propagation = Propagation.REQUIRED,isolation = Isolation.READ_COMMITTED)
public class TransferService {
}

mysql默认:可重复读

4、timeout:超时时间

(1)事务需要在一定时间内进行提交,如果不提交进行回滚
(2)默认值是-1,设置时间以秒单位进行计算

5、readOnly:是否只读

(1)读:查询操作,写:添加修改删除操作
(2)readOnly默认值false,表示可以查询,可以添加修改删除操作
(3)设置readOnly值是true,设置成true之后,只能查询

@Service
@Transactional(readOnly = true,propagation = Propagation.REQUIRED,isolation = Isolation.READ_COMMITTED)
public class TransferService {

}

6、rollbackFor:回滚

(1)设置出现哪些异常进行事务回滚

7、noRollbackFor:不回滚

(1)设置出现哪些异常不进行事务回滚

暂无评论

发送评论 编辑评论


				
上一篇
下一篇