Spring 事务隔离与事务传播的详解与对比
网络编程 2021-07-05 11:23www.168986.cn编程入门
这篇文章主要介绍了Spring 事务隔离与事务传播的详解与对比的相关资料,Spring是SSH中的管理员,负责管理其它框架,协调各个部分的工作,需要的朋友可以参考下
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 事务隔离与事务传播的实例详解,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程