0
点赞
收藏
分享

微信扫一扫

Spring中的TransactionEventListener

最后的执着 2022-04-21 阅读 57
java

Spring的发布订阅模型实际上并不是异步的,而是同步的来将代码进行解耦,spring容器在创建bean的过程中,会判断bean是否为ApplicationListener类型,进而会将其作为监听器注册到AbstractApplicationContext#applicationEventMulticaster中。

本文要说的TransactionEventListener实现的也是这种方式,可以实现把主流程不直接相关分支逻辑从主逻辑代码中解耦出来变成可插拔式的代码,但是要注意的是监听器逻辑和主逻辑仍然是同步执行的。当然,如果需要把分支逻辑变为异步的则可以考虑使用SimpleApplicationEventMulticaster这个支持异步调用的监听器,或者可以在监听逻辑中单独起线程亦或通过MQ方式实现与主流程的异步解耦。

@TransactionEventListener

从注解名称可以看出,这个注解是跟事务有关的。

单从这个功能上说的话,其实@TransactionEventListener监听器实现的功能跟之前写过的事务同步器功能效果是一样的,都可以实现在事务某个阶段执行某些逻辑。 而且都是与事务同步执行的。

举报

相关推荐

0 条评论