主页 > 知识库 > Spring 事务隔离与事务传播的详解与对比

Spring 事务隔离与事务传播的详解与对比

热门标签:阿里云 银行业务 服务器配置 Mysql连接数设置 科大讯飞语音识别系统 Linux服务器 电子围栏 团购网站

Spring 事务隔离与事务传播的详解与对比

Spring是SSH中的管理员,负责管理其它框架,协调各个部分的工作。今天一起学习一下Spring的事务管理。Spring的事务管理分为声明式跟编程式。声明式就是在Spring的配置文件中进行相关配置;编程式就是用注解的方式写到代码里。

Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource、TransactionManager和代理机制这三部分,无论哪种配置方式,一般变化的只是代理机制这部分。 DataSource、 TransactionManager这两部分只是会根据数据访问方式有所变化,比如使用Hibernate进行数据访问时,DataSource实际为 SessionFactory,TransactionManager的实现为HibernateTransactionManager。

spring的事务隔离级别

  • ISOLATION_DEFAULT:使用数据库默认的隔离级别。
  • ISOLATION_READ_UNCOMMITTED:允许读取改变了的还未提交的数据,可能导致脏读、不可重复读和幻读。
  • ISOLATION_READ COMMITTED:允许并发事务提交之后读取,可以避免脏读,可能导致重复读和幻读。
  • ISOLATION_REPEATABLE_READ:对相同字段的多次读取结果一致,可导致幻读。
  • ISOLATION_SERIALIZABLE:完全服从ACID的原则,确保不发生脏读、不可重复读和幻读。

可以根据自己的系统对数据的要求采取适应的隔离级别,因为隔离牵涉到锁定数据库中的记录,对数据正性要求越严格,并发的性能也越差。

spring的事务传播行为

  • spring事务的传播行为说的是当一个方法调用另一个方法时,事务该如何操作。
  • PROPAGATION_MANDATORY:该方法必须运行在一个事务中。如果当前事务不存在则抛出异常。
  • PROPAGATION_NESTED:如果当前存在一个事务,则该方法运行在一个嵌套的事务中。被嵌套的事务可以从当前事务中单独的提交和回滚。如果当前不存在事务,则开始一个新的事务。各厂商对这种传播行为的支持参差不齐,使用时需注意。
  • PROPAGATION_NEVER:当前方法不应该运行在一个事务中。如果当前存在一个事务,则抛出异常。
  • PROPAGATION_NOT_SUPPORTED:当前方法不应该运行在一个事务中。如果一个事务正在运行,它将在该方法的运行期间挂起。
  • PROPAGATION_REQUIRED:该方法必须运行在一个事务中。如果一个事务正在运行,该方法将运行在这个事务中。否则,就开始一个新的事务。
  • PROPAGATION_REQUIRES_NEW:该方法必须运行在自己的事务中。它将启动一个新的事务。如果一个现有的事务正在运行,将在这个方法的运行期间挂起。
  • PROPAGATION_SUPPORTS:当前方法不需要事务处理环境,但如果一个事务已经在运行的话,这个方法也可以在这个事务里运行。

以上就是Spring 事务隔离与事务传播的实例详解,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

您可能感兴趣的文章:
  • spring事务隔离级别、传播机制以及简单配置方式
  • 这一次搞懂Spring事务是如何传播的
  • Spring事务传播行为问题解决
  • spring事物传播propagation类别含义详解
  • 浅谈Spring事务传播行为实战
  • Spring中的事务传播行为示例详解
  • 深入理解Spring事务的传播行为
  • Spring中事务传播行为的介绍
  • 深入理解Spring的事务传播行为
  • Spring事务传播属性和隔离级别详细介绍
  • Spring事物的传播特性详解

标签:蚌埠 萍乡 衢州 大理 枣庄 广元 江苏 衡水

巨人网络通讯声明:本文标题《Spring 事务隔离与事务传播的详解与对比》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266