zoukankan      html  css  js  c++  java
  • SpringBoot中添加事务

    今天项目中需要使用到事务,所以在这里将SpringBoot的事务实现方式学习一下

    SpringBoot中使用事务会使用到@Transactional这个注解来实现

      先来对Transactional注解有个大致了解

      1.其上注解

    @Target({ElementType.METHOD, ElementType.TYPE})//METHOD:用于描述方法,TYPE:用于描述类、接口(包括注解类型) 或enum声明
    @Retention(RetentionPolicy.RUNTIME)//注解不仅被保存到class文件中,jvm加载class文件之后,仍然存在
    @Inherited//阐述了某个被标注的类型是被继承的
    @Documented//表明这个注解应该被 javadoc工具记录

      2.属性 

        2.1 rollbackFor(这就是我今天使用到的属性)

          指定哪些异常需要进行事务回滚,这里可以设置异常数组,通常为RuntimeException.class、Exception.class

        2.2 value和2.3 transactionManager(因为使用了AliasFor注解,value和transactionManager互为别名)

          这两个放在一起讲,如果我们没有指定,默认为上下文中声明的名称为“transactionManager”,pringboot会自动配置一个 DataSourceTransactionManager

        2.4 propagation 默认为Propagation.REQUIRED

          用于设置事务的传播行为,业务方法需要在一个事务中运行,如果方法运行时,已处在一个事务中,那么就加入该事务,否则自己创建一个新的事务.这是spring默认的传播行为

        2.5 isolation 默认为  Isolation.DEFAULT

          用于设置底层数据库的事务隔离级别,事务隔离级别用于处理多事务并发的情况,通常使用数据库的默认隔离级别即可,基本不需要进行设置

        2.6 timeout 默认为-1,表示永不超时

          用于设置事务的超时秒数

        2.7 readOnly 默认为false 

          设置当前事务是否为只读事务

        2.8 rollbackForClassName (这个和rollbackFor最大的区别就是一个是指定异常类,一个是指定异常类名)

        2.9 noRollbackFor(这个应该就是忽略哪些异常)

        2.10 noRollbackForClassName(这个我觉得不需要我详细说明了)

      3.实际使用(这算是手动回滚使用)

        1.首先在我们需要使用事务的Service层的方法上添加@Transactional注解

        2.rollbackFor配置我们需要捕获的哪些异常来进行事务回滚

        3.其他参数按照自己实际需求来添加

        4.方法中捕获这个异常,然后调用

          TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();

    注意:

      1.@Transactional注解必须应用到public方法上才有效

  • 相关阅读:
    codeforces C. No to Palindromes!
    codeforces D. Pashmak and Parmida's problem
    codeforces C. Little Pony and Expected Maximum
    codeforces D. Count Good Substrings
    codeforces C. Jzzhu and Chocolate
    codeforces C. DZY Loves Sequences
    codeforces D. Multiplication Table
    codeforces C. Painting Fence
    hdu 5067 Harry And Dig Machine
    POJ 1159 Palindrome
  • 原文地址:https://www.cnblogs.com/kongkongFabian/p/9610938.html
Copyright © 2011-2022 走看看