zoukankan      html  css  js  c++  java
  • Spring事务传播行为

    Spring事物传播行为

    Spring中事务的定义:

    Propagation(key属性确定代理应该给哪个方法增加事务行为。这样的属性最重要的部份是传播行为。)有以下选项可供使用:

    PROPAGATION_REQUIRED:如果当前有事务,就用当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。//如果外层方法有事务,就使用外层方法的事务。如果外层方法没有事务,则使用内层方法的事务。

    PROPAGATION_SUPPORTS:支持当前事务,如果当前没有事务,就以非事务方式执行。//如果外层方法没有事务,就会以非事务进行执行。

    PROPAGATION_MANDATORY:支持当前事务,如果当前没有事务,就抛出异常。 //如果外层方法没有事务,内层方法有事务会报错。

    PROPAGATION_REQUIRES_NEW:新建事务,如果当前存在事务,把当前事务挂起。 //如果外层方法有事务,内层方法的事务类型为(PROPAGATION_REQUIRES_NEW) ,则执行内层方法事务。如果外层在调用内层方法结束之后方法出错,不会影响内层事务做的操作。

    PROPAGATION_NOT_SUPPORTED:以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。//如果外层方法有事务,就会以非事务方式执行。

    PROPAGATION_NEVER:以非事务方式执行,如果当前存在事务,则抛出异常。//如果外层方法有事务,内部事务也有事务类型为(PROPAGATION_NEVER),则报错。

     

    默认传播行为为REQUIRED

  • 相关阅读:
    linux中inittab文件详解
    Linux的 test 命令使用
    程序的链接和装入及Linux下动态链接的实现
    linux虚拟内存管理简要总结
    一些vim技巧和经验
    Linux cp mv rm ln 命令对于 inode 和 dentry 的影响
    Linux C编程一站式学习
    虚拟内存管理
    为何cp覆盖进程的动态库(so)会导致coredump
    linux下So覆盖导致coredump问题的分析
  • 原文地址:https://www.cnblogs.com/ming-blogs/p/10865493.html
Copyright © 2011-2022 走看看