spring boot事务传播
时间: 2023-10-09 12:08:41 浏览: 99
Spring Boot使用@Transactional注解来标记需要事务管理的方法,事务传播是指在多个方法调用的情况下,事务应该如何传播。Spring Boot支持以下七种事务传播行为:
1. REQUIRED:默认的事务传播行为,在当前事务不存在时创建一个新事务,如果存在则加入当前事务。
2. SUPPORTS:如果当前存在事务,则加入当前事务,否则不使用事务。
3. MANDATORY:必须要有一个当前事务,否则抛出异常。
4. REQUIRES_NEW:创建一个新事务,如果当前存在事务,则挂起当前事务。
5. NOT_SUPPORTED:不使用事务,如果当前存在事务,则挂起当前事务。
6. NEVER:不使用事务,如果当前存在事务,则抛出异常。
7. NESTED:如果当前存在事务,则在当前事务中嵌套一个新事务,如果不存在则创建一个新事务。如果外层事务回滚,内层事务也会回滚,但是内层事务可以单独提交或回滚。
相关问题
spring boot事务传播机制
Spring Boot事务传播机制是指在一个方法内调用另一个方法时,如何处理事务的传播。Spring Boot中有多种事务传播机制,包括REQUIRED、SUPPORTS、MANDATORY、REQUIRES_NEW、NOT_SUPPORTED、NEVER和NESTED等。这些传播机制可以根据具体需求来选择使用。
Spring boot 事务回滚
在Spring Boot中,事务回滚可以通过使用@Transactional注解来实现。当在开启事务的方法中出现异常时,事务会自动回滚。为了确保事务回滚,需要在service的public方法上加上@Transactional注解,并指定rollbackFor属性为Exception.class,这样一旦程序出现异常,事务就会自动回滚。
此外,Spring Boot还提供了不同的事务传播行为选项。其中一种常用的传播行为是REQUIRED,即如果存在事务,则加入该事务,如果不存在,则创建一个新的事务。另外还有其他的传播行为选项,比如NOT_SUPPORTED(容器不为该方法开启事务)、REQUIRES_NEW(不管是否存在事务都创建一个新的事务)、MANDATORY(必须在一个已有的事务中执行)等。根据具体的业务需求,可以选择适合的事务传播行为来实现事务的回滚功能。
阅读全文