在 Spring 中使用事务时创建提交后

2024-05-26

由于某些原因,我使用 Spring PlatformTransactionManager 手动执行事务提交和回滚,我需要做的是设置一个钩子,以便在提交事务后发生提交后操作。

通过查看:

 void commit(TransactionStatus status) throws TransactionException;

除了假设没有抛出异常之外,我看不出如何确定事务是否成功。

我可以使用 AOP 作为一种选择,但是如何以编程方式执行此操作,也许使用回调方法?


您可以通过更简单的方式获得您想要的东西,TransactionSynchronizationManager http://static.springsource.org/spring/docs/3.2.x/javadoc-api/org/springframework/transaction/support/TransactionSynchronizationManager.html and TransactionSynchronization http://static.springsource.org/spring/docs/3.2.x/javadoc-api/org/springframework/transaction/support/TransactionSynchronization.html

With TransactionSynchronizationManager,您有静态方法来获取有关当前交易的信息,并且您可以注册一个TransactionSynchronization这允许您在调用时自动执行提交后操作

TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization(){
           void afterCommit(){
                //do what you want to do after commit
           }
})

请注意,TransactionSynchronization 是基于每个线程的(这对于基本 Web 请求来说通常不是问题)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Spring 中使用事务时创建提交后 的相关文章

随机推荐

  • 自动完成功能在特定层次结构的 XML 文件中不起作用

    特别是 XML 节点层次结构 例如 DrawerLayout gt RelativeLayout gt ImageButton 自动完成功能无法按预期工作 建议列表包含无效项目 例如 android src里面没有显示ImageButton
  • 为什么 event.stopPropagation() 不会阻止

    SO 上也提出了与此类似的问题 但他们要么只关心解决其具体实现 要么没有明确提出这个问题 此外 所有答案都没有真正解决这个问题 给出以下示例 document querySelector span addEventListener clic
  • 最低共同祖先算法

    所以我一直在研究实现最低共同祖先算法 我研究了许多不同的算法 主要是 Trajan 解决方案的变体或 RMQ 的变体 我正在使用非二叉树 我的树经常会在查询之间发生变化 因此预处理不一定值得 树的节点数不应超过 50 75 个 我想知道的是
  • MAMP Pro mysql 无法启动

    我遇到问题无法找到解决此问题的方法 我收到这个错误 2017 01 11 23 58 25 7fffbac563c0 InnoDB Operating system error number 2 in a file operation In
  • 如何通过双击图标来执行JAVA程序?

    我写了一个java程序 现在我想在没有 IDE Eclipse 等的情况下打开我的控制台 java 应用程序 只需双击桌面上的可执行版本即可 我已将 java 项目导出为 Runnable JAR 文件 但无法打开 当我尝试使用cmd打开应
  • 适用于真正复杂查询的 ORM 解决方案

    在这样复杂的情况下 人们可以 应该使用任何 ORM 解决方案吗 这可以用以下方法完成吗Propel or Doctrine 目前我正在使用 Propel 所以如果有 Propel 解决方案 我会很高兴 如果我使用 propel 进行直接查询
  • REST API 响应中的校验和

    发送带有响应内容的校验和是个好主意吗 如果是这样 计算校验和的最常见方法是什么 Example HTTP 1 1 200 OK Date Thu 30 Jun 2011 21 32 20 GMT Server Apache Connecti
  • 苹果的属性列表(plist)在C++中的实现

    我的任务是在 C 应用程序中读取 Apple 的属性列表文件 主要关注 OS X 中指定的 xml 类型 plist 文件 它模仿 xml 类型实现 Apple 对其属性列表的实现描述如下 http developer apple com
  • 计算热图颜色

    我正在制作一个由 HTML 表格组成的热图 该表包含n细胞并有一个lowest值和一个highest值 最高值始终高于最低值 每个细胞都有一个cell价值 所有这些值都是整数 具有最低值的单元格应为浅蓝色 缩放到具有最高值的单元格为深红色
  • Rails (PostgreSQL) 中文本列的默认大小

    如果我在迁移中有这个 t text body 我可以容纳多少文字 body 如果相关的话我正在使用 PostgreSQL 直接来自PostgreSQL 文档 http www postgresql org docs 8 4 static d
  • 自定义错误处理程序抛出错误:无法读取未定义的属性“get”(注入器)

    我正在 Angular 4 中构建自定义错误处理程序 以使用错误拦截器处理不同类型的应用程序错误 创建一个基类 应用程序错误 ts 和其他类 例如处理 403 错误创建类拒绝访问 ts 扩展了这个基类 在基类中注入了一个服务toastrSe
  • 用逗号分割字符串到新行

    我有一个像这样的字符串 This is great day tomorrow is a better day the day after is a better day the day after the day after that is
  • 将误差线添加到多条线上以在 R 中的绘图上显示标准差

    我有一个包含许多不同线条的图 我想为每条线上的每个点添加误差线 df lt matrix runif 25 5 5 plot 1 5 seq 0 1 1 4 type n mapply lines as data frame df col
  • .onLoad 在渲染完成之前调用吗?

    我想在页面加载后调用一些 JS 这可能会涉及延迟 因此我希望首先加载页面 以便显示内容 但似乎调用了 onLoad 处理程序中的代码before渲染完成 是否有更好的事件可以使用 该事件在页面 完成 时触发 澄清一下 我想在页面呈现在屏幕上
  • 使用 stl sort 对表进行排序

    我有一个巨大的表 约 50Gb 格式为 i j k 来自稀疏矩阵 存储为 uint32 t idx1 idx2 float vals uint32 t tablesize 我想使用给定的比较函数 即 idx1 和 idx2 的函数 对其进行
  • 卷积神经网络 (CNN) 输入形状

    我是 CNN 的新手 我有一个关于 CNN 的问题 我对 CNN 特别是 Keras 的输入形状有点困惑 我的数据是不同时隙的二维数据 比方说10X10 因此 我有 3D 数据 我将把这些数据输入到我的模型中来预测即将到来的时间段 所以 我
  • 如何配置Lettuce Redis集群异步连接池

    我正在配置我的生菜重新分配池 当我按照官方文档配置时 连接池无法正常初始化 无法获取连接 官方文档指出 RedisClusterClient clusterClient RedisClusterClient create RedisURI
  • 为什么我无法将动态事件处理程序附加到该元素?

    My code http jsfiddle net arEWv 7 HTML div style width 500px height 500px div div div
  • 从泛型类继承时需要 T 的列表或枚举器的建议

    我知道答案并不简单 而且我已经使用了一些 我认为丑陋的 木棍 我只是在寻找一些优雅的答案 抽象类 public interface IOtherObjects public abstract class MyObjects
  • 在 Spring 中使用事务时创建提交后

    由于某些原因 我使用 Spring PlatformTransactionManager 手动执行事务提交和回滚 我需要做的是设置一个钩子 以便在提交事务后发生提交后操作 通过查看 void commit TransactionStatus