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 事务提交成功后,再去发送事件相关推荐

  1. 如何在spring事务提交成功后再进行异步操作

    业务场景: 我们经常会有些方法会调用一些方法异步执行,比如入库操作后要异步发送mq消息,发送短信或者发布事件等等 但是往往我们的业务方法总是包含事务的,要么全部成功,要么全部失败. 有的时候事务执行失 ...

  2. JavaScript--JQuery事件 当网页元素加载完成后再去执行事件

    1. JQuery事件 JQuery帮助文档: 这里的selector都是CSS选择器的语法 CSS选择器 示例1 弹出提示框: <!DOCTYPE html> <html lang ...

  3. Spring中事务提交成功后处理的异步调用方法

    为什么80%的码农都做不了架构师?>>>    问题 想要在Spring中提交事务成功后,调用一部分异步方法. 解决 TransactionSynchronizationManage ...

  4. Spring 事务提交回滚源码解析

    2019独角兽企业重金招聘Python工程师标准>>> 前言 在上篇文章 Spring 事务初始化源码分析 中分析了 Spring 事务初始化的一个过程,当初始化完成后,Spring ...

  5. 帆软填报增加记录提交成功后没有_大病医疗填报图解

    判断是否符合扣除条件 在一个纳税年度内,纳税人发生的与基本医保相关的医药费用支出,扣除医保报销后个人负担(指医保目录范围内的自付部分)累计超过15000元的部分,由纳税人在办理年度汇算清缴时,在800 ...

  6. dedecms自定义表单提交成功后提示信息修改和跳转链接修改

    我们在用dedecms自定义表单提交成功后提示信息一般是"Dedecms 提示信息",这个要怎么改成自己想要的文字呢?还有就是提示页停留时间,目前估计就2秒,太快了,要如何设置长点 ...

  7. 开发商微信选房后不退认筹金_新楼盘开盘的“认筹”和“认购”,劝您看懂后再去认!...

    各大开发商,包括运城在内的,他们在新楼盘开盘时都会出现"认筹"."认购"字样,可是,您具体清楚是什么意思吗?建议您了解清楚以后再决定认不认-- 认筹: 认筹是开 ...

  8. 页面提交成功后,弹窗提示

    因为要求提交成功后返回弹窗,本来用的是@ResponseBody ,直接输出的成功 但是不好看嘛,所以用下图这样的 我自己想了个方法,不知道有没有更好的. 写了个div隐藏,页面加载默认传一个mode ...

  9. js提交成功后,清空表单

    js提交成功后,清空表单: $("form")[0].reset(); //清空表单 转载于:https://www.cnblogs.com/bagnliu/p/8205536.h ...

最新文章

  1. php对二维数据排序
  2. 手写AngularJS脏检查机制
  3. java数据从本地文件中取出_java 从数据库取数据并存入本地文本中
  4. html5自动填充父类框,html5和css3进阶(浮动)----02
  5. es创建索引库报错 :Types cannot be provided in put mapping requests, unless the include_type_na
  6. sqlserver 备份脚本
  7. 高斯分布matlab程序,生成高斯分布的matlab程序
  8. kindle电子书转PDF,结合calibre工具和DeDRM_tools使用
  9. h桥程序控制c语言,H桥电路原理及直流电机驱动编程
  10. macOS安装yarn
  11. win10文件名乱码但内容正常怎么办 win10文件名乱码怎么解决
  12. 从小鸡仔开始的遗传算法
  13. win10系统更新后底部状态栏经常无响应
  14. 新浪微博搜索 s.weibo.com [已失效]
  15. HDU 4009 Transfer water (最小树形图+虚根)
  16. Edwards推出市场上抽吸速度最高的新款紧凑型干式真空泵
  17. 我与小娜(18):购买LIGO“绝活儿“,值不值?
  18. 计量经济学第六版第三章计算机答案,计量经济学第3章计算机习题.docx
  19. 《暗黑2》经典数值公式分析总结(三)
  20. Android 点击View实现前后翻转动画

热门文章

  1. 《士兵突击》,不抛弃,不放弃
  2. 51假期读书笔记(上)——流畅的python
  3. mysql lag over_数据库sql 使用 lag 和OVER 函数和 like 使用 小技巧
  4. 动态白盒测试——逻辑覆盖测试法
  5. 刚刚,清华集成电路学院成立!校友占比半导体产业半壁江山,现在瞄准“中国芯”...
  6. 万代南梦宫假面骑士时尚品牌HENSHIN by KAMEN RIDER首登中国;安宏资本宣布与资生堂达成协议 | 知消...
  7. Excel如何快速小计求和
  8. 高防服务器与高防IP区别
  9. python常用关键字意思_Python 关键字列表及示例
  10. 如何破解网络密码?(2种方法)