spring事务传播行为-非事务方式 的理解

  具体的传播行为可以看看搜一下,相关的博客挺多的,现在说一下对隔离级别 PROPAGATION_NOT_SUPPORTED、PROPAGATION_NEVER中很多解释为 非事务方式运行 的理解。
  关于什么是‘非事务方式运行‘问了些人,也看了spring相关解释,都没能解释的让人很明白。从字面上解释就是不在事务中运行,这种理解是不对的。在innodb这种支持事务的存储引擎中,所有的操作都是在事务中完成的。
下面截图是默认隔离级别(PROPAGATION_REQUIRED)下数据库操作的截图,在进行插入之前都会设置为非自动提交。
spring事务传播行为-非事务方式 的理解
  下图是never隔离级别下的数据库操作截图,可以看到在操作数据库之前设置为自动提交了。
spring事务传播行为-非事务方式 的理解
  demo代码如下,ps:传播行为、隔离级别生效 要在不同的类中调用(动态代理支持)
spring事务传播行为-非事务方式 的理解
  总结:非事务的方式运行,其实就是设置为自动提交了,如果一个方法中有多个操作,则每个操作都会在不同事务中完成,不会保证他们的原子性。个人理解,有啥不对 欢迎指正。