我是靠谱客的博主 执着人生,这篇文章主要介绍springboot事务的入门了解,现在分享给大家,希望可以做个参考。

使用说明

@Transaction可修饰实现类和实现方法
@Transaction只能修饰public方法,因为是aop方式实现
A、B两个方法,A无@Transactional标签,B有,上层通过A间接调用B,此时事务不生效。
默认配置下,spring 只有在抛出的异常为运行时 unchecked 异常时才回滚该事务
多线程的各线程之间不受事务控制。

@Transaction

在这里插入图片描述事务的隔离级别

1. @Transactional(isolation = Isolation.READ_UNCOMMITTED):读取未提交数据(会出现脏读,
 不可重复读) 基本不使用
 
2. @Transactional(isolation = Isolation.READ_COMMITTED):读取已提交数据(会出现不可重复读和幻读)
 
3. @Transactional(isolation = Isolation.REPEATABLE_READ):可重复读(会出现幻读)
 
4. @Transactional(isolation = Isolation.SERIALIZABLE):串行化

事务传播行为:如果在开始当前事务之前,一个事务上下文已经存在,此时可以指定一个事务性方法的执行行为

1. TransactionDefinition.PROPAGATION_REQUIRED:
   如果当前存在事务,则加入该事务;如果当前没有事务,则创建一个新的事务。这是默认值。
 
2. TransactionDefinition.PROPAGATION_REQUIRES_NEW:
   创建一个新的事务,如果当前存在事务,则把当前事务挂起。
 
3. TransactionDefinition.PROPAGATION_SUPPORTS:
   如果当前存在事务,则加入该事务;如果当前没有事务,则以非事务的方式继续运行。
 
4. TransactionDefinition.PROPAGATION_NOT_SUPPORTED:
   以非事务方式运行,如果当前存在事务,则把当前事务挂起。
 
5. TransactionDefinition.PROPAGATION_NEVER:
   以非事务方式运行,如果当前存在事务,则抛出异常。
 
6. TransactionDefinition.PROPAGATION_MANDATORY:
   如果当前存在事务,则加入该事务;如果当前没有事务,则抛出异常。
 
7. TransactionDefinition.PROPAGATION_NESTED:
   如果当前存在事务,则创建一个事务作为当前事务的嵌套事务来运行;
   如果当前没有事务,则该取值等价于TransactionDefinition.PROPAGATION_REQUIRED。

@EnableTransactionManagement

Spring Boot 使用事务,首先启动类注解 @EnableTransactionManagement 开启事务支持,然后在Service业务方法上添加注解 @Transactional 便可。

一个应用可以有多个事务管理器。https://blog.csdn.net/u010963948/article/details/79208328
使用事务时通过value属性指定。

最后

以上就是执着人生最近收集整理的关于springboot事务的入门了解的全部内容,更多相关springboot事务内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部