Spring事务管理—讲解、案例、应用

简介:Spring事务管理和数据库的事务管理的功能作用上是一样的,在学习数据库时,为了数据完整性,采用了事务管理,即开启事务、提交事务和管理事务。在SpringBoot框架中添加一个注解 @Transactional 就可以将当前方法、类和接口设置为一个注解。

一、Spring事务管理

1.1 基础知识

注解:@Transactional

位置:业务(Service)层的方法上、类上、接口上

作用:将当前方法、类、接口交给Spring进行事务管理,方法执行前,开启事务;成功执行完毕,提交事务;出现异常,回滚事务

1.2 开启事务管理日志

将下图代码添加到yml的配置文件中

#spring事务管理日志
logging:
  level:
    org.springframework.jdbc.support.JdbcTransactionManager: debug

二、事务进阶

2.1 事务属性

        1. rollbackFor

        默认情况下,只有出现 RuntimeException 才会回滚异常。rollbackFor属性用于控制出现何种异常类型,回滚事务。

package com.itheima.tliaswebmanagement.exception;

import com.itheima.tliaswebmanagement.pojo.Result;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

@RestControllerAdvice // 异常类注解
@Transactional(rollbackFor = Exception.class) //所有异常,都要回滚
public class GlobalExceptionHandler {

    @ExceptionHandler(Exception.class) // 定义处理什么种类的注解
    public Result ex(Exception exception){
        // 异常打印出来
        exception.printStackTrace();
        return Result.error("出现异常,请联系管理员");
    }
}

        2. propagation(传播)

        事务传播行为:指的是当一个事务方法被另一个事务方法调用时,这个事务方法应该如何进行事务控制

        REQUIRED:大部分情况下都是用该传播行为即可。

        REQUIRES_NEW:当我们不希望事物之间相互影响时,可以使用该传播行为。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值