spring 事务回调
最近接到一个业务,其中我需要用做的就是插入用户数据到数据库,并发送短信给客户,所以我要保证一定是事务commit 之后,我才可以发送短信。
所以我查找spring 资料,发现 TransactionSynchronizationManager(事务同步管理器)可以满足我的需求,接下我演示我的实现过程。
1.定义事务回调的方法
/*** 事务回调执行* @author : lxq*/
public interface TransactionCallBackAction {/*** 普通事务回调*/void callback();
}
2.使用事务同步管理器,事务提交之后执行回调
@Component
public class TransactionCallBackService {public void execute(final TransactionCallBackAction action) {//判断Transaction对象是否处于活动状态if (TransactionSynchronizationManager.isActualTransactionActive()) {//建立新的Transaction对象用于执行回调TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() {@Overridepublic void afterCommit() {// 事务提交后执行回调action.callback();}});} else {// 事务提交后执行回调action.callback();}}
}
3.在实战中的使用
spring 事务回调相关推荐
- 事务嵌套问题_注意Spring事务这一点,避免出现大事务
背景 本篇文章主要分享压测的(高并发)时候发现的一些问题.之前的两篇文章已经讲述了在高并发的情况下,消息队列和数据库连接池的一些总结和优化,有兴趣的可以在我的公众号中去翻阅.废话不多说,进入正题. 事 ...
- Spring事务管理 与 SpringAOP
1,Spring事务的核心接口 Spring事务管理的实现有许多细节,如果对整个接口框架有个大体了解会非常有利于我们理解事务,下面通过讲解Spring的事务接口来了解Spring实现事务的具体策略. ...
- Spring事务管理(详解+实例)
写这篇博客之前我首先读了<Spring in action>,之后在网上看了一些关于Spring事务管理的文章,感觉都没有讲全,这里就将书上的和网上关于事务的知识总结一下,参考的文章如下: ...
- Spring事务专题(四)Spring中事务的使用、抽象机制及模拟Spring事务实现
前言 本专题大纲如下: 事务专题大纲 「对于专题大纲我又做了调整哈,主要是希望专题的内容能够更丰富,更加详细」,本来是想在源码分析的文章中附带讲一讲事务使用中的问题,这两天想了想还是单独写一篇并作为事 ...
- Spring 事务用法示例与实现原理
关于事务,简单来说,就是为了保证数据完整性而存在的一种工具,其主要有四大特性:原子性,一致性,隔离性和持久性.对于Spring事务,其最终还是在数据库层面实现的,而Spring只是以一种比较优雅的方式 ...
- Spring的AOP和IOC是什么?使用场景有哪些?Spring事务与数据库事务,传播行为,数据库隔离级别
Spring的AOP和IOC是什么?使用场景有哪些?Spring事务与数据库事务,传播行为,数据库隔离级别 AOP:面向切面编程. 即在一个功能模块中新增其他功能,比方说你要下楼取个快递,你同事对你说 ...
- Spring事务原理一探
概括来讲,事务是一个由有限操作集合组成的逻辑单元.事务操作包含两个目的,数据一致以及操作隔离.数据一致是指事务提交时保证事务内的所有操作都成功完成,并且更改永久生效:事务回滚时,保证能够恢复到事务执行 ...
- 【技术干货】Spring事务原理一探
本篇文章是网易云信研发工程师对Spring事务实现原理及实现的研究和总结,分享给大家,希望和大家共同探讨. 事务是一个由有限操作集合组成的逻辑单元.事务操作包含两个目的,数据一致以及操作隔离.数据一致 ...
- 事务里面捕获异常_三问Spring事务:解决什么问题?如何解决?存在什么问题?...
1. 解决什么问题 让我们先从事务说起,"什么是事务?我们为什么需要事务?". 事务是一组无法被分割的操作,要么所有操作全部成功,要么全部失败.我们在开发中需要通过事务将一些操作组 ...
最新文章
- linux安装vi 插件,Ubuntu上Vim安装NERDTree插件的详细操作步骤
- 如何使用jQuery按名称选择元素?
- Java可以跨平台的原因
- python 递归结束条件_python递归(如果条件满足,为什么程序不退出一次?)
- Atom相关资料整理
- ASP.NET中进行消息处理(MSMQ) 一
- sql2005新增排序方法
- c++ 链表_算法学习笔记 - 链表 - 单链表的粗糙实现
- Jar包部署-指定jsp打包配置
- Java领域的对象如何传输-如何解决报错的问题呢?
- 正则表达式-我在学习过程中研究过的
- 【最全最详细】使用publiccms实现动态可维护的导航菜单栏
- java的多态怎么理解_JAVA多态的理解
- mysql 编译安装与rpm安装的区别_编译安装与RPM安装的区别
- Unity3d AR 增强现实技术列表(2016年3月31日更新)
- 接口大师(PhalApi专业版)项目实战经验分享,快速开发项目的新方式
- 利用WireShark破解网站密码
- 2023年电气,电子与信息工程国际会议(ISEEIE-2023)
- 硬件工程师的系统开发之路
- ML-Agents案例之双人足球