
spring事务
文章平均质量分 85
WannaRunning
这个作者很懒,什么都没留下…
展开
-
Spring中的TransactionEventListener
Spring的发布订阅模型实际上并不是异步的,而是同步的来将代码进行解耦,spring容器在创建bean的过程中,会判断bean是否为ApplicationListener类型,进而会将其作为监听器注册到AbstractApplicationContext#applicationEventMulticaster中。本文要说的TransactionEventListener实现的也是这种方式,可以实现把主流程不直接相关分支逻辑从主逻辑代码中解耦出来变成可插拔式的代码,但是要注意的是监听器逻辑和主逻辑仍然是原创 2022-04-21 23:11:38 · 700 阅读 · 0 评论 -
TransactionSynchronizationManager事务同步器的使用
有很多业务场景涉及到事务提交前或事务提交后做一些关联性的操作,一种方式就是可以考虑事务消息的解决方案。除此之外,其实这种业务场景可以考虑使用TransactionSynchronizationManager所支持的同步器实现功能。使用TransactionSynchronizationManager的registerSynchronization方法注入一个TransactionSynchronization事务同步器,然后重写TransactionSynchronization或者其子类的before原创 2021-08-27 00:57:14 · 10440 阅读 · 3 评论 -
浅谈Spring传播行为的应用——事务嵌套
在Spring事务中介绍了@Transactional注解相关的属性设置,其中Propagation属性是传播行为,默认的是Propagation.REQUIRE 即如果有事务就加入,没有的话就新建一个事务。最近开发中遇到了事务嵌套的情况,我的场景是这样的:业务主要是对一个集合的数据进行循环,对每条数据做若干数据库操作,最后再做一些别的数据库操作;但是业务需求是如果某一条数据在循环处理时出现异常,不中断其他数据的处理和最后的数据库操作,也就是出错的数据就放弃处理,成功的数据不受影响。首先我认.原创 2021-04-13 18:07:04 · 1015 阅读 · 0 评论 -
事务隔离级别MVCC实现与悲观锁乐观锁
目录四种事务的隔离级数据库默认隔离级别为什么要使用悲观锁和乐观锁悲观锁乐观锁事务的隔离级(Isolation Level),就是在数据库事务中,为保证并发数据读写的正确性。四种事务的隔离级串行读 >可重复读 >已提交读 >未提交读1、未提交读(Read Uncommitted):允许脏读,也就是可能读取到其他会话中未提交事务修改的数据。本隔离级别很少用于实际应用,因为它的性能也不比其他级别好多少2、已提交读(Read Committed...原创 2020-12-29 11:37:15 · 307 阅读 · 0 评论 -
Spring中的AOP——事务管理的实现和事务失效
其实Spring并不是直接管理事务,而是提供了多种事务管理器,他们将事务管理的职责委托给Hibernate或者JTA等持久化机制所提供的相关平台框架的事务来实现。Spring事务管理器的接口是org.springframework.transaction.PlatformTransactionManager,通过这个接口,Spring为各个平台如JDBC、Hibernate等都提供了对应的事务...原创 2019-11-29 18:28:47 · 334 阅读 · 0 评论