【项目实战】Spring事务传播行为
2023-09-14 09:04:55 时间
一、事务传播
事务传播是指事务与其他事务交互时的行为。
二、Spring中七种不同的传播行为
在Spring中,有七种不同的传播行为可用:
序号 | 传播行为 | 解释 |
---|---|---|
1 | REQUIRED | 如果存在事务,则当前方法将在该事务内运行。如果不存在事务,则将创建一个新事务。 |
2 | SUPPORTS | 如果存在事务,则当前方法将在该事务内运行。如果不存在事务,则该方法将在没有事务的情况下运行。 |
3 | MANDATORY | 如果存在事务,则当前方法将在该事务内运行。如果不存在事务,则会抛出异常。 |
4 | REQUIRESNEW | 无论事务是否已存在,都将为当前方法创建一个新事务。 |
5 | NOTSUPPORTED | 当前方法将始终在没有事务的情况下运行,而不管事务是否已存在。 |
6 | NEVER | 当前方法将始终在没有事务的情况下运行。如果存在事务,则会抛出异常。 |
7 | NESTED | 如果存在事务,则当前方法将在该事务内运行。如果不存在事务,则将创建一个新事务。但是,新事务将嵌套在现有事务中。 |
三、如何使用@Transactional注释指定事务的传播行为
要在Spring中指定事务的传播行为,我们可以使用@Transactional注释。
例如,如果想使用REQUIRED传播行为,我们可以像这样注释我们的方法:
这将确保该方法在现有事务中运行,如果存在事务,则创建一个新事务。
@Transactional(propagation = Propagation.REQUIRED)
public void myMethod() {
// method logic here
}
相关文章
- eclips环境下开发spring boot项目,application.properties配置文件下中文乱码解决方案
- spring+springMVC+mybatis的框架项目基础环境搭建
- FastJson/spring boot: json输出方法二
- spring mvc: log4j插件 log日志的输出
- spring mvc注解@RequestParam
- [Java Spring data] Paging and sorting
- intellij idea 2021.2 打包并上传运行一个spring boot项目(spring boot 2.5.4)
- spring boot 2 : 开发快递100订阅运单数据(spring boot v2.5.4)
- spring boot:用dynamic-datasource-spring-boot-starter配置druid多数据源(spring boot 2.3.3)
- Spring Boot项目开启异步使用多线程完整代码案例
- Spring 整合 aspectj 框架实现的 aop
- 在Spring Boot项目中使用Spock框架
- Spring事务扩展篇
- Atitit spring 3.0 3.1 3.2 4.0 4.3 5.0 新特性
- 【项目实战】使用Spring框架中的RestTemplate,实现HTTP请求的调用
- Spring Boot——maven项目常用打包配置
- 【架构师修炼之路】Redis 极简教程 : 基本数据结构, 跳表原理, Spring Boot 项目使用实例...
- Spring data jpa批量插入和更新
- 【Spring注解驱动开发】关于BeanPostProcessor后置处理器,你了解多少?
- 002-创建型-03-单例模式(Singleton)【7种】、spring单例及原理
- 008-spring cloud gateway-路由谓词RoutePredicate、RoutePredicateFactory
- 0701-spring cloud config-简介、Config Server开发、Config Client开发
- Spring Boot可以离开Spring Cloud独立使用开发项目,但是Spring Cloud离不开Spring Boot,属于依赖的关系。
- 【项目实战】在Spring Boot中使用Jasypt加密和解密敏感数据