springboot事物和事物回滚

要添加事物 必须在方法上添加

一.开启事物

 

@Transactional 注解

可以在注解后加(rollbackFor = Exception.class)

代表 碰到所有异常都回滚 默认RuntimeException异常回滚

@Transactional (rollbackFor = Exception.class)

注意:如果自定义数据源或者多数据源是需要自定事物的!

默认   mybatis-plus-boot-starter  或  mybatis-spring-boot-starter 会自动定义好事物

 

自定义事物如下

@Configuration
@EnableTransactionManagement
public class TransactionConfig {
    @Bean
    public PlatformTransactionManager txManager(DataSource dataSource) {
        return new DataSourceTransactionManager(dataSource);
    }
}

 

二.事物回滚

如果需要事物回滚有两个条件

1.方法中有异常或者主动抛异常

2.主动去回滚

TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();

注意 : 如果遇到 org.springframework.transaction.NoTransactionException: No transaction aspect-managed TransactionStatus  

说明容器中没有定义事物,需要自定义事物

 




posted on 2018-06-11 16:17  朱春旺  阅读(3028)  评论(0编辑  收藏  举报