Spring事务(二)-@Transactional注解

Spring事务(二)-@Transactional注解

上一节说了Spring的事务配置,其中,声明式事务配置里有5种配置方式,
@Transactional注解应该是最为常用的一种方式了。这一节就说说 @Transactional注解。

@Transactional注解可以放到类名或者方法名上面,
写在类名上面,如下:

@Transactional( propagation = Propagation.REQUIRED, isolation = Isolation.DEFAULT, timeout = -1, readOnly = false, rollbackFor = {Exception.class})
@Service
public class UserServiceImpl {
    public void A() {
        //......

    }
}

写在方法名上面,如下:

@Transactional( propagation = Propagation.REQUIRED, isolation = Isolation.DEFAULT, timeout = -1, readOnly = false, rollbackFor = {Exception.class})
public void A() {
    //......

}

如果写在类上面,则这个类下面的所有方法都会应用这个注解的属性设置。

下面是 @Transactional注解的各个属性解释:

属性名 说明 propagation 事务的传播行为,默认值为 REQUIRED。
[详情]

isolation 事务的隔离级别,默认值为 DEFAULT。
[详情]

timeout 事务的超时时间,默认值为-1。如果超过该时间限制但事务还没有完成,则自动回滚事务。 readOnly 指定事务是否为只读事务,默认值为 false;如果方法内只有select的操作,没有insert、update、delete的操作,可以设置 read-only 为 true。
[详情]

rollbackFor 指定能够触发事务回滚的异常类型。例如:@Transactional(rollbackFor={RuntimeException.class, Exception.class})。 rollbackForClassName 指定能够触发事务回滚的异常类名。例如:@Transactional(rollbackForClassName={“RuntimeException”,”Exception”})。 noRollbackFor 指定的异常类型,不回滚事务。默认值为{}。例如:@Transactional(noRollbackFor={RuntimeException.class, Exception.class})。 noRollbackForClassName 指定的异常类名,不回滚事务。默认值为{}。例如:@Transactional(noRollbackForClassName={“RuntimeException”,”Exception”})。

Original: https://www.cnblogs.com/ayic/p/16759227.html
Author: Yi00
Title: Spring事务(二)-@Transactional注解

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/684956/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球