脱离 Spring 实现复杂嵌套事务,之五(SUPPORTS - 跟随环境)

    本文是<实现 Spring 的事务控制>系列文章中一篇。本文假设读者已经阅读并理解《实现 Spring 的事务控制,之一(必要的概念)》文中所涉及的概念(当前连接引用计数),以及数据库连接的(new状态

PROPAGATION_SUPPORTS(跟随环境)

定义:

    是指 Spring 容器中如果当前没有事务存在,就以非事务方式执行;如果有就使用当前事务。

解释:

    SUPPORTS 行为是 Spring 事务传播属性中最简单的一种行为。SUPPORTS 行为本质上强调了“不作为”。如下图:

脱离 Spring 实现复杂嵌套事务,之五(SUPPORTS - 跟随环境)

    似乎我不需要多解释这张图后面的工作原理,大家只要记得。无论是什么行为下,开启事务和递交事务都会对当前连接的引用计数有++ -- 操作就可以了。

    SUPPORTS  行为带给我们的结果是,如果当前环境中存在事务,那么就用这个环境的事务。否则就什么都不用。这种行为下不会对事务进行任何操作。

转载于:https://my.oschina.net/ta8210/blog/200384