当前位置: 首页 > news >正文

Spring扩展点(二)Spring事务生命周期

Spring事务生命周期

  • Spring事务
    • 事务生命周期 接口 TransactionSynchronization
    • @TransactionalEventListener(另一种监听事务周期的方式)

Spring事务

Spring对JDBC事务做了封装,使其易于使用。主要分为声明式事务和编程式事务。

  • @Transactional(rollbackFor = Exception.class)
  • TransactionTemplate

事务生命周期 接口 TransactionSynchronization

通常我们可以在开启事务后,通过TransactionSynchronizationManager#registerSynchronization 方法注册自定义的事务周期函数。
// 伪代码

//开启事务
TransactionSynchronizationManager.registerSynchronization(registerSynchronization)
// 提交事务 or 回滚事务

对应的事务生命周期会调用自定义registerSynchronization对应的回调函数。
所有事务状态均保存在ThreadLocal中,因此事务相关的逻辑注意跨线程。

@TransactionalEventListener(另一种监听事务周期的方式)

@TransactionalEventListener 可以在事务的指定阶段监听事务中发出的自定义事件。
可以监听的阶段

  • BEFORE_COMMIT,
  • AFTER_COMMIT,
  • AFTER_ROLLBACK,
  • AFTER_COMPLETION

// 发布事件

// 事务开启
applicationContext.publishEvent(customEventevent);

// 监听事件

@TransactionalEventListener(phase = TransactionPhase.AFTER_COMMIT, classes = CustomEvent.class)
public void handleCustomEvent(CustomEventevent) {// 在特定的事务阶段调用
}
http://www.lryc.cn/news/343728.html

相关文章:

  • foobar2000 for Mac:卓越音乐播放器
  • 【自动驾驶|毫米波雷达】初识毫米波雷达射频前端硬件
  • 实战BACnet/IP标准通信网关在楼宇自动化中的应用
  • 设计模式的原则与分类
  • 在ubuntu虚拟机中手动安装VMware Tools(VMware Workstation 17 player)
  • 十个数据安全最佳实践:保护数据的简单方法
  • 【leetcode】二分搜索题目总结
  • 六西格玛项目的核心要素:理论学习、实践应用与项目经验
  • 21-ESP32-S3实时时钟(RTC)
  • 17.接口自动化学习-日志
  • python直接发布到网站wordpress之二发布图片
  • Messari 报告摘要 :Covalent Network(CQT)2024 年第一季度表现
  • PGP加密技术:保护信息安全的利器
  • 【C++】文件
  • uniapp离线在Xcode上打包后提交审核时提示NSUserTrackingUsageDescription的解决方法
  • 【Linux】进程exec函数族以及守护进程
  • 为什么 ChatGPT 不火了?
  • Ubuntu22.04下安装kafka_2.11-0.10.1.0并运行简单实例
  • 【S32K3 MCAL配置】-7.2-GPT Driver:仿OS,周期/定时调用APP SWC和BSW模块的主函数
  • golang内置包里面的sort.Slice 切片排序函数使用示例
  • Golang | Leetcode Golang题解之第70题爬楼梯
  • 区块链 | NFT 相关论文:Preventing Content Cloning in NFT Collections(三)
  • Unity技术学习:渲染大量物体的解决方案,外加RenderMesh、RenderMeshInstanced、RenderMeshIndirect的简单使用
  • [数据概念|方案实操][最新]数据资产入表4月速递
  • C++中使用Multimap和Vector管理和展示数据
  • Java---类和方法的再学习
  • C语言每日一练(12、水仙花数)
  • HTML5实现酷炫个人产品推广、工具推广、信息推广、个人主页、个人介绍、酷炫官网、门户网站模板源码
  • 系统如何做好安全加固?
  • 对NI系统和PLC系统的应用比较