spring 事务提交成功后,再去发送事件
TransactionSynchronizationManager.registerSynchronization( new TransactionSynchronizationAdapter() {@Overridepublic void afterCommit(){applicationContext.publishEvent( event );// 发送事件}} );
PS:
spring 在发送事务(applicationContext.publishEvent( event );)和@EventListener本来是拥有一个事务,
但是, 我们在保证事务执行成功之后再去接受事务,导致没有in progress的事务。所以如果需要在@EventListener端再去提交事务(保存数据),需要在方法上加上@Transactional(propagation=Propagation.REQUIRES_NEW)。
如果需要手动开启事务,可以使用Spring的PlatformTransactionManager 接口,
@Autowired
private PlatformTransactionManager transactionManager;
try{DefaultTransactionDefinition def = new DefaultTransactionDefinition();def.setPropagationBehavior( TransactionDefinition.PROPAGATION_REQUIRES_NEW );// 事务隔离级别,开启新事务TransactionStatus status = transactionManager.getTransaction( def );//获取事务状态,并开启事务,相当于transation.begin(); saveMethod();// 逻辑保存数据的代码 transactionManager.commit( status ); //提交事务
}
catch(Exception e)
{ transactionManager.rollback( status ); // 事务回滚
}
本人java初级,如果有人看到,欢迎补充,欢迎拍砖。
spring 事务提交成功后,再去发送事件相关推荐
- 如何在spring事务提交成功后再进行异步操作
业务场景: 我们经常会有些方法会调用一些方法异步执行,比如入库操作后要异步发送mq消息,发送短信或者发布事件等等 但是往往我们的业务方法总是包含事务的,要么全部成功,要么全部失败. 有的时候事务执行失 ...
- JavaScript--JQuery事件 当网页元素加载完成后再去执行事件
1. JQuery事件 JQuery帮助文档: 这里的selector都是CSS选择器的语法 CSS选择器 示例1 弹出提示框: <!DOCTYPE html> <html lang ...
- Spring中事务提交成功后处理的异步调用方法
为什么80%的码农都做不了架构师?>>> 问题 想要在Spring中提交事务成功后,调用一部分异步方法. 解决 TransactionSynchronizationManage ...
- Spring 事务提交回滚源码解析
2019独角兽企业重金招聘Python工程师标准>>> 前言 在上篇文章 Spring 事务初始化源码分析 中分析了 Spring 事务初始化的一个过程,当初始化完成后,Spring ...
- 帆软填报增加记录提交成功后没有_大病医疗填报图解
判断是否符合扣除条件 在一个纳税年度内,纳税人发生的与基本医保相关的医药费用支出,扣除医保报销后个人负担(指医保目录范围内的自付部分)累计超过15000元的部分,由纳税人在办理年度汇算清缴时,在800 ...
- dedecms自定义表单提交成功后提示信息修改和跳转链接修改
我们在用dedecms自定义表单提交成功后提示信息一般是"Dedecms 提示信息",这个要怎么改成自己想要的文字呢?还有就是提示页停留时间,目前估计就2秒,太快了,要如何设置长点 ...
- 开发商微信选房后不退认筹金_新楼盘开盘的“认筹”和“认购”,劝您看懂后再去认!...
各大开发商,包括运城在内的,他们在新楼盘开盘时都会出现"认筹"."认购"字样,可是,您具体清楚是什么意思吗?建议您了解清楚以后再决定认不认-- 认筹: 认筹是开 ...
- 页面提交成功后,弹窗提示
因为要求提交成功后返回弹窗,本来用的是@ResponseBody ,直接输出的成功 但是不好看嘛,所以用下图这样的 我自己想了个方法,不知道有没有更好的. 写了个div隐藏,页面加载默认传一个mode ...
- js提交成功后,清空表单
js提交成功后,清空表单: $("form")[0].reset(); //清空表单 转载于:https://www.cnblogs.com/bagnliu/p/8205536.h ...
最新文章
- php对二维数据排序
- 手写AngularJS脏检查机制
- java数据从本地文件中取出_java 从数据库取数据并存入本地文本中
- html5自动填充父类框,html5和css3进阶(浮动)----02
- es创建索引库报错 :Types cannot be provided in put mapping requests, unless the include_type_na
- sqlserver 备份脚本
- 高斯分布matlab程序,生成高斯分布的matlab程序
- kindle电子书转PDF,结合calibre工具和DeDRM_tools使用
- h桥程序控制c语言,H桥电路原理及直流电机驱动编程
- macOS安装yarn
- win10文件名乱码但内容正常怎么办 win10文件名乱码怎么解决
- 从小鸡仔开始的遗传算法
- win10系统更新后底部状态栏经常无响应
- 新浪微博搜索 s.weibo.com [已失效]
- HDU 4009 Transfer water (最小树形图+虚根)
- Edwards推出市场上抽吸速度最高的新款紧凑型干式真空泵
- 我与小娜(18):购买LIGO“绝活儿“,值不值?
- 计量经济学第六版第三章计算机答案,计量经济学第3章计算机习题.docx
- 《暗黑2》经典数值公式分析总结(三)
- Android 点击View实现前后翻转动画
热门文章
- 《士兵突击》,不抛弃,不放弃
- 51假期读书笔记(上)——流畅的python
- mysql lag over_数据库sql 使用 lag 和OVER 函数和 like 使用 小技巧
- 动态白盒测试——逻辑覆盖测试法
- 刚刚,清华集成电路学院成立!校友占比半导体产业半壁江山,现在瞄准“中国芯”...
- 万代南梦宫假面骑士时尚品牌HENSHIN by KAMEN RIDER首登中国;安宏资本宣布与资生堂达成协议 | 知消...
- Excel如何快速小计求和
- 高防服务器与高防IP区别
- python常用关键字意思_Python 关键字列表及示例
- 如何破解网络密码?(2种方法)