springboot 事物传播级别和机制
时间: 2023-11-15 14:57:25 浏览: 41
Spring Boot 中的事务传播级别和机制是通过 Spring 框架的事务管理器实现的。Spring Boot 默认使用的是基于注解的声明式事务管理,即使用 @Transactional 注解来标记需要进行事务管理的方法。
Spring Boot 中的事务传播级别包括以下几种:
1. REQUIRED:如果当前存在事务,则加入该事务;如果当前没有事务,则创建一个新的事务。
2. SUPPORTS:如果当前存在事务,则加入该事务;如果当前没有事务,则以非事务的方式继续执行。
3. MANDATORY:如果当前存在事务,则加入该事务;如果当前没有事务,则抛出异常。
4. REQUIRES_NEW:创建一个新的事务,如果当前存在事务,则挂起该事务。
5. NOT_SUPPORTED:以非事务的方式执行操作,如果当前存在事务,则挂起该事务。
6. NEVER:以非事务的方式执行操作,如果当前存在事务,则抛出异常。
7. NESTED:如果当前存在事务,则在嵌套事务中执行;如果当前没有事务,则创建一个新的事务。
Spring Boot 中的事务机制是通过 AOP(面向切面编程)实现的。当使用 @Transactional 注解标记一个方法时,Spring Boot 会自动为该方法生成一个代理对象,在代理对象中实现了对该方法的事务管理。
相关问题
springboot事务传播机制
Spring Boot事务传播机制是指在一个事务方法调用另一个事务方法时,如何处理这些事务的传播行为。Spring中定义了多种事务传播行为,可供开发者按照实际需要使用,常见事务传播行为如下:
1. REQUIRED:默认的事务传播机制,如果当前没有事务,那么就新建一个事务,如果已经有事务在进行中,那么就加入到这个事务中,不管是抛出异常还是正常结束都会提交事务。
2. SUPPORTS:如果当前有事务在进行中,那么就加入到这个事务中,如果当前没有事务在进行中,那么就不开启事务。
3. MANDATORY:如果当前有事务在进行中,那么就加入到这个事务中,如果当前没有事务,在抛出异常。
4. REQUIRES_NEW:无论当前是否有事务在进行,都会新建一个事务并执行。
5. NOT_SUPPORTED:当前如果有事务在进行,就将事务挂起,执行完后再继续当前事务。
6. NEVER:当前如果有事务在进行,直接抛出异常。
7. NESTED:在当前事务的嵌套事务中执行,并独立于嵌套事务之外的其他所有事务运作,如果抛出异常则只回滚当前事务的嵌套事务,而不包括其他事务。
springboot的事务传播机制
Spring Boot提供了简单易用的事务管理功能,事务的传播机制是指在多个事务方法调用时,事务是如何传播和管理的。Spring Boot中的事务传播机制有以下几种:
1. REQUIRED(默认):如果当前存在事务,则加入该事务,如果不存在事务,则创建一个新的事务。这是最常用的传播机制。
2. SUPPORTS:如果当前存在事务,则加入该事务,如果不存在事务,则以非事务的方式执行。
3. MANDATORY:如果当前存在事务,则加入该事务,如果不存在事务,则抛出异常。
4. REQUIRES_NEW:无论当前是否存在事务,都创建一个新的事务。如果存在事务,则将当前事务挂起。
5. NOT_SUPPORTED:以非事务方式执行操作,如果当前存在事务,则将当前事务挂起。
6. NEVER:以非事务方式执行操作,如果当前存在事务,则抛出异常。
7. NESTED:如果当前存在事务,则创建一个嵌套事务,并在嵌套事务内执行。如果不存在事务,则创建一个新的事务。
以上是常用的事务传播机制,您可以根据实际需求选择适合的传播机制来管理您的事务。在Spring Boot中,可以使用@Transactional注解来声明需要进行事务管理的方法或类。