Skip to content

wonderwater/test-transactional

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

test-transactional

关于spring中@Transactional注解传播属性原理的实验

具体方法:

  1. 主体形式:a方法调用b方法

    • a插入数据“one”
    • b插入数据“two”
  2. a、b方法都可以有不同的传播级别或者不加事务注解(none):

    required(rd), required_new(rn), never(nr), supports(ss), not_supoort(ns), mandatory(mt), nested(ne)

  3. a和b方法都可能抛异常,对于b方法抛出的异常,a方法可以选择捕获或向上抛出

  4. 控制变量:

    • a传播级别(father)
    • b传播级别(son)
    • a是否抛出异常(fatherthrow)
    • b是否抛出异常(sonthrow)
    • b抛出异常时,a是否catch它(fathercatch)
  5. 对于以上所有的情况进行枚举,得出以下实验现象:

    • 是否调用了a(cancallfather)
    • 是否调用了b(cancallson)
    • b运行时是否可观察到a的行为(soncanseefather)
    • a尝试调用b后,是否可观察到b的行为(fathercanseeson)
    • 最终的数据变化如何(result)
  6. 实验结果:

father son fatherthrow sonthrow fathercatch cancallfather cancallson soncanseefather fathercanseeson result
rd rd True True True True True True True
rd rd True True False True True True True
rd rd True False null True True True True
rd ss True True True True True True True
rd ss True True False True True True True
rd ss True False null True True True True
rd mt True True True True True True True
rd mt True True False True True True True
rd mt True False null True True True True
rd rn True True True True True False False
rd rn True True False True True False False
rd rn True False null True True False True two
rd ns True True True True True False True two
rd ns True True False True True False True two
rd ns True False null True True False True two
rd nr True True True True False null False
rd ne True True True True True True False
rd ne True True False True True True False
rd ne True False null True True True True
rd none True True True True True True True
rd none True True False True True True True
rd none True False null True True True True
rd rd False True True True True True True
rd rd False True False True True True True
rd rd False False null True True True True one|two
rd ss False True True True True True True
rd ss False True False True True True True
rd ss False False null True True True True one|two
rd mt False True True True True True True
rd mt False True False True True True True
rd mt False False null True True True True one|two
rd rn False True True True True False False one
rd rn False True False True True False False
rd rn False False null True True False True one|two
rd ns False True True True True False True one|two
rd ns False True False True True False True two
rd ns False False null True True False True one|two
rd nr False True True True False null False one
rd ne False True True True True True False one
rd ne False True False True True True False
rd ne False False null True True True True one|two
rd none False True True True True True True one|two
rd none False True False True True True True
rd none False False null True True True True one|two
ss rd True True True True True True False one
ss rd True True False True True True False one
ss rd True False null True True True True one|two
ss ss True True True True True True True one|two
ss ss True True False True True True True one|two
ss ss True False null True True True True one|two
ss mt True True True True False null False one
ss rn True True True True True True False one
ss rn True True False True True True False one
ss rn True False null True True True True one|two
ss ns True True True True True True True one|two
ss ns True True False True True True True one|two
ss ns True False null True True True True one|two
ss nr True True True True True True True one|two
ss nr True True False True True True True one|two
ss nr True False null True True True True one|two
ss ne True True True True True True False one
ss ne True True False True True True False one
ss ne True False null True True True True one|two
ss none True True True True True True True one|two
ss none True True False True True True True one|two
ss none True False null True True True True one|two
ss rd False True True True True True False one
ss rd False True False True True True False one
ss rd False False null True True True True one|two
ss ss False True True True True True True one|two
ss ss False True False True True True True one|two
ss ss False False null True True True True one|two
ss mt False True True True False null False one
ss rn False True True True True True False one
ss rn False True False True True True False one
ss rn False False null True True True True one|two
ss ns False True True True True True True one|two
ss ns False True False True True True True one|two
ss ns False False null True True True True one|two
ss nr False True True True True True True one|two
ss nr False True False True True True True one|two
ss nr False False null True True True True one|two
ss ne False True True True True True False one
ss ne False True False True True True False one
ss ne False False null True True True True one|two
ss none False True True True True True True one|two
ss none False True False True True True True one|two
ss none False False null True True True True one|two
mt rd True True True False False null null
rn rd True True True True True True True
rn rd True True False True True True True
rn rd True False null True True True True
rn ss True True True True True True True
rn ss True True False True True True True
rn ss True False null True True True True
rn mt True True True True True True True
rn mt True True False True True True True
rn mt True False null True True True True
rn rn True True True True True False False
rn rn True True False True True False False
rn rn True False null True True False True two
rn ns True True True True True False True two
rn ns True True False True True False True two
rn ns True False null True True False True two
rn nr True True True True False null False
rn ne True True True True True True False
rn ne True True False True True True False
rn ne True False null True True True True
rn none True True True True True True True
rn none True True False True True True True
rn none True False null True True True True
rn rd False True True True True True True
rn rd False True False True True True True
rn rd False False null True True True True one|two
rn ss False True True True True True True
rn ss False True False True True True True
rn ss False False null True True True True one|two
rn mt False True True True True True True
rn mt False True False True True True True
rn mt False False null True True True True one|two
rn rn False True True True True False False one
rn rn False True False True True False False
rn rn False False null True True False True one|two
rn ns False True True True True False True one|two
rn ns False True False True True False True two
rn ns False False null True True False True one|two
rn nr False True True True False null False one
rn ne False True True True True True False one
rn ne False True False True True True False
rn ne False False null True True True True one|two
rn none False True True True True True True one|two
rn none False True False True True True True
rn none False False null True True True True one|two
ns rd True True True True True True False one
ns rd True True False True True True False one
ns rd True False null True True True True one|two
ns ss True True True True True True True one|two
ns ss True True False True True True True one|two
ns ss True False null True True True True one|two
ns mt True True True True False null False one
ns rn True True True True True True False one
ns rn True True False True True True False one
ns rn True False null True True True True one|two
ns ns True True True True True True True one|two
ns ns True True False True True True True one|two
ns ns True False null True True True True one|two
ns nr True True True True True True True one|two
ns nr True True False True True True True one|two
ns nr True False null True True True True one|two
ns ne True True True True True True False one
ns ne True True False True True True False one
ns ne True False null True True True True one|two
ns none True True True True True True True one|two
ns none True True False True True True True one|two
ns none True False null True True True True one|two
ns rd False True True True True True False one
ns rd False True False True True True False one
ns rd False False null True True True True one|two
ns ss False True True True True True True one|two
ns ss False True False True True True True one|two
ns ss False False null True True True True one|two
ns mt False True True True False null False one
ns rn False True True True True True False one
ns rn False True False True True True False one
ns rn False False null True True True True one|two
ns ns False True True True True True True one|two
ns ns False True False True True True True one|two
ns ns False False null True True True True one|two
ns nr False True True True True True True one|two
ns nr False True False True True True True one|two
ns nr False False null True True True True one|two
ns ne False True True True True True False one
ns ne False True False True True True False one
ns ne False False null True True True True one|two
ns none False True True True True True True one|two
ns none False True False True True True True one|two
ns none False False null True True True True one|two
nr rd True True True True True True False one
nr rd True True False True True True False one
nr rd True False null True True True True one|two
nr ss True True True True True True True one|two
nr ss True True False True True True True one|two
nr ss True False null True True True True one|two
nr mt True True True True False null False one
nr rn True True True True True True False one
nr rn True True False True True True False one
nr rn True False null True True True True one|two
nr ns True True True True True True True one|two
nr ns True True False True True True True one|two
nr ns True False null True True True True one|two
nr nr True True True True True True True one|two
nr nr True True False True True True True one|two
nr nr True False null True True True True one|two
nr ne True True True True True True False one
nr ne True True False True True True False one
nr ne True False null True True True True one|two
nr none True True True True True True True one|two
nr none True True False True True True True one|two
nr none True False null True True True True one|two
nr rd False True True True True True False one
nr rd False True False True True True False one
nr rd False False null True True True True one|two
nr ss False True True True True True True one|two
nr ss False True False True True True True one|two
nr ss False False null True True True True one|two
nr mt False True True True False null False one
nr rn False True True True True True False one
nr rn False True False True True True False one
nr rn False False null True True True True one|two
nr ns False True True True True True True one|two
nr ns False True False True True True True one|two
nr ns False False null True True True True one|two
nr nr False True True True True True True one|two
nr nr False True False True True True True one|two
nr nr False False null True True True True one|two
nr ne False True True True True True False one
nr ne False True False True True True False one
nr ne False False null True True True True one|two
nr none False True True True True True True one|two
nr none False True False True True True True one|two
nr none False False null True True True True one|two
ne rd True True True True True True True
ne rd True True False True True True True
ne rd True False null True True True True
ne ss True True True True True True True
ne ss True True False True True True True
ne ss True False null True True True True
ne mt True True True True True True True
ne mt True True False True True True True
ne mt True False null True True True True
ne rn True True True True True False False
ne rn True True False True True False False
ne rn True False null True True False True two
ne ns True True True True True False True two
ne ns True True False True True False True two
ne ns True False null True True False True two
ne nr True True True True False null False
ne ne True True True True True True False
ne ne True True False True True True False
ne ne True False null True True True True
ne none True True True True True True True
ne none True True False True True True True
ne none True False null True True True True
ne rd False True True True True True True
ne rd False True False True True True True
ne rd False False null True True True True one|two
ne ss False True True True True True True
ne ss False True False True True True True
ne ss False False null True True True True one|two
ne mt False True True True True True True
ne mt False True False True True True True
ne mt False False null True True True True one|two
ne rn False True True True True False False one
ne rn False True False True True False False
ne rn False False null True True False True one|two
ne ns False True True True True False True one|two
ne ns False True False True True False True two
ne ns False False null True True False True one|two
ne nr False True True True False null False one
ne ne False True True True True True False one
ne ne False True False True True True False
ne ne False False null True True True True one|two
ne none False True True True True True True one|two
ne none False True False True True True True
ne none False False null True True True True one|two
none rd True True True True True True False one
none rd True True False True True True False one
none rd True False null True True True True one|two
none ss True True True True True True True one|two
none ss True True False True True True True one|two
none ss True False null True True True True one|two
none mt True True True True False null False one
none rn True True True True True True False one
none rn True True False True True True False one
none rn True False null True True True True one|two
none ns True True True True True True True one|two
none ns True True False True True True True one|two
none ns True False null True True True True one|two
none nr True True True True True True True one|two
none nr True True False True True True True one|two
none nr True False null True True True True one|two
none ne True True True True True True False one
none ne True True False True True True False one
none ne True False null True True True True one|two
none none True True True True True True True one|two
none none True True False True True True True one|two
none none True False null True True True True one|two
none rd False True True True True True False one
none rd False True False True True True False one
none rd False False null True True True True one|two
none ss False True True True True True True one|two
none ss False True False True True True True one|two
none ss False False null True True True True one|two
none mt False True True True False null False one
none rn False True True True True True False one
none rn False True False True True True False one
none rn False False null True True True True one|two
none ns False True True True True True True one|two
none ns False True False True True True True one|two
none ns False False null True True True True one|two
none nr False True True True True True True one|two
none nr False True False True True True True one|two
none nr False False null True True True True one|two
none ne False True True True True True False one
none ne False True False True True True False one
none ne False False null True True True True one|two
none none False True True True True True True one|two
none none False True False True True True True one|two
none none False False null True True True True one|two

About

关于spring中@transactional注解传播属性原理的实验

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages