springboot Transactional事务传播方式
时间: 2024-05-14 20:11:28 浏览: 118
Spring Boot中使用@Transactional注解来进行事务管理,事务传播方式是指在多个事务方法之间调用时,事务应该如何传播。Spring Boot支持多种事务传播方式,具体如下:
1. REQUIRED:默认值,如果当前没有事务,则新建一个事务;如果当前有事务,则加入到当前事务中。
2. SUPPORTS:如果当前有事务,则加入到当前事务中;如果当前没有事务,则以非事务方式运行。
3. MANDATORY:如果当前有事务,则加入到当前事务中;如果当前没有事务,则抛出异常。
4. REQUIRES_NEW:新建一个独立的事务,并挂起当前事务;如果当前有事务,则挂起当前事务。
5. NOT_SUPPORTED:以非事务方式运行;如果当前有事务,则挂起当前事务。
6. NEVER:以非事务方式运行;如果当前有事务,则抛出异常。
7. NESTED:如果当前有事务,则在嵌套事务中执行;如果当前没有事务,则新建一个事务。
相关问题
springboot transactional注解
在Spring Boot中,@Transactional注解是用于声明事务的注解之一。通过将该注解放置在需要进行事务管理的方法或类上,可以告诉Spring Boot这些方法或类需要进行事务管理。该注解是通过AOP(面向切面编程)机制实现的,具体来说,@Transactional注解是通过Spring Boot的事务拦截器来实现的。当被注解的方法或类被调用时,Spring Boot的事务拦截器将拦截该方法或类,并根据注解中指定的属性来开启一个事务。
在事务执行过程中,如果出现异常,则Spring Boot会根据事务的设置来决定是否回滚事务。如果事务执行成功,则Spring Boot会根据事务的设置来决定是否提交事务。当使用@Transactional注解时,还可以设置一些属性,例如事务的隔离级别、事务的传播行为等。通过配置这些属性,可以更加灵活地控制事务的行为。
下面是使用@Transactional注解的步骤:
1. 在需要进行事务管理的方法或类上添加@Transactional注解。
2. 可选地设置@Transactional注解的属性,例如隔离级别、传播行为等。
3. 当该方法或类被调用时,Spring Boot的事务拦截器将会拦截它,并根据注解中指定的属性来开启一个事务。
4. 在事务执行过程中,如果出现异常,根据事务的设置来决定是否回滚事务。
5. 如果事务执行成功,根据事务的设置来决定是否提交事务。
需要注意的是,@Transactional注解只能应用于公共的非静态方法上,因为它是通过动态代理来实现的。
总之,@Transactional注解是Spring Boot中用于声明事务的注解之一,通过使用该注解可以实现对方法或类的事务管理,提供了灵活的配置选项来控制事务的行为。
springboot的事务传播机制
Spring Boot提供了简单易用的事务管理功能,事务的传播机制是指在多个事务方法调用时,事务是如何传播和管理的。Spring Boot中的事务传播机制有以下几种:
1. REQUIRED(默认):如果当前存在事务,则加入该事务,如果不存在事务,则创建一个新的事务。这是最常用的传播机制。
2. SUPPORTS:如果当前存在事务,则加入该事务,如果不存在事务,则以非事务的方式执行。
3. MANDATORY:如果当前存在事务,则加入该事务,如果不存在事务,则抛出异常。
4. REQUIRES_NEW:无论当前是否存在事务,都创建一个新的事务。如果存在事务,则将当前事务挂起。
5. NOT_SUPPORTED:以非事务方式执行操作,如果当前存在事务,则将当前事务挂起。
6. NEVER:以非事务方式执行操作,如果当前存在事务,则抛出异常。
7. NESTED:如果当前存在事务,则创建一个嵌套事务,并在嵌套事务内执行。如果不存在事务,则创建一个新的事务。
以上是常用的事务传播机制,您可以根据实际需求选择适合的传播机制来管理您的事务。在Spring Boot中,可以使用@Transactional注解来声明需要进行事务管理的方法或类。
阅读全文