如何在多线程中使用spring事务

2024-07-04

我有一个方法如下:

ClassA.java
@Transactional
public void methodA(){        
    ExecutorService executorService = Executors.newFixedThreadPool(4);
    executorService.execute(new Runnable() {
        public void run() {
            classB.methodB();
        }
});
}
ClassB.java
@Transactional
public void methodB(){
    updateDB();
}

方法B可以有效吗?根据我的理解,methodB会附加methodA的事务,如果methodA先于methodB退出怎么办?我猜事务只能提交methodA。但是methodB不会提交,因为事务之前已提交。

我可以对 methodB 使用 @Transactional(propagation = Propagation.REQUIRES_NEW) 吗?这样就可以让methodB有一个新的事务了。但根据spring doc,methodA的事务在调用methodB时将暂停。我在这里感到很困惑。

有人能帮我解决这个问题吗?提前致谢。


No, methodB()不会在同一事务中执行methodA()。春天的@Transactional仅适用于单个线程 - 当线程首次进入方法时,它会创建一个会话@Transactional(或者类中的方法@Transactional),然后在离开该方法时提交它。

在您的示例中,事务将在您在线程池中安排作业后结束。methodB()将有自己的交易。

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

如何在多线程中使用spring事务 的相关文章

  • 使用 Java 打开 Arduino 上的 LED

    我安装了 Java 串行 RXTX 库并正确设置了 Arduino 我什至已经启动并运行了示例代码 但我似乎无法理解如何访问不同的 Arduino 引脚以打开 LED 等 如何使用 OutputStream 或任何其他方式访问引脚 我是否需
  • 我应该如何在 Spring Integration 中构建消息?

    我编写了一个应用程序 正在对其进行重构以更好地利用 Spring Integration 应用程序处理文件的内容 问题 据我所知 是我当前的实现通过了Files代替Messages 即 Spring 集成Messages http docs
  • 配置 Manuel 容器 IntelliJ Arquillian Wildfly

    我正在使用 intelliJ 运行 junit arquillian 测试 问题是我的测试适用于 maven 命令 但不适用于 arquillian mvn package P arq wildlfy managed 这是我的 pom
  • Selenium2 中的 FirefoxDriver 是否有经过验证的 mouseOver 解决方法?

    我在用着硒Java 2 0b3 我有这个代码 WebDriver driver new InternetExplorerDriver Selenium seleniumDriver new WebDriverBackedSelenium d
  • GWT - 找不到入口点类

    我最近开始开发另一个 GWT 模块 因此 我创建了一个包 其中包含所有新类和一个实现新入口点的特定类 我将 gwt xml 修改为新的入口点 当我编译时 出现以下错误 GWT Compiling client side code WARNI
  • 如何将 XML 文件直接写入 zip 存档?

    在不使用第 3 方库的情况下 使用 JAXB 直接将 XML 文件列表写入 zip 存档的正确方法是什么 将所有 XML 文件写入一个目录然后压缩会更好吗 正如其他人指出的那样 您可以使用ZipOutputStream类来创建 ZIP 文件
  • 在 Java 中将 HTML 转换为纯文本

    我需要将 HTML 转换为纯文本 我对格式的唯一要求是在纯文本中保留新行 新行不仅应在以下情况下显示 br 但其他标签 例如 tr tr 也通向一条新线 用于测试的示例 HTML 页面是 http www article kth se li
  • Google Play 游戏服务 - 自定义通知/欢迎回来

    我一直在互联网上查找 但找不到我的答案 有没有办法向用户显示他们已登录 GPGS 第一次登录时 您会收到一条通知 内容为 欢迎 但是当您下次打开应用程序时 什么也没有显示 有没有办法显示欢迎回来通知 对于 iOS 这是可能的 在第 9 步上
  • Hibernate 对数据库的查询

    我对休眠对数据库执行的查询量有疑问 这是我在进行简单选择时对数据库的查询日志 使用 Mysql 5 1 111125 7 18 30 27 Query SET autocommit 0 27 Query SELECT session tx
  • JOGL/OpenGL VBO - 如何渲染顶点?

    3我有以下SceneRenderer类 实现GLEventListener 我想我了解创建缓冲区 存储指向这些缓冲区的指针以及用数据填充这些缓冲区的过程 请参阅 init 方法 我奋斗的地方是展示 方法 我几乎尝试了在互联网上找到的所有内容
  • Spring Actuator 可以与非 Web Spring Boot 应用程序一起使用吗?

    我有一个 Spring Boot 应用程序 它侦听来自 IBM MQ 输入队列的消息 对消息进行一些处理 然后将消息放入输出队列 像这样的应用程序可以利用Spring执行器来监视应用程序 例如心跳检查 吗 从执行器文档来看 它似乎只能与 S
  • 新的 JUnit 4.8.1 @Category 渲染测试套件几乎已经过时了吗?

    给出的问题 如何运行属于某个类别的所有测试 和答案 https stackoverflow com questions 2176570 how to run all tests belonging to a certain category
  • Jenkins 中的算法协商失败 SSH

    我正在尝试从 Jenkins ssh 到本地服务器 但抛出以下错误 SSH Exception Algorithm negotiation fail com jcraft jsch JSchException Algorithm negot
  • CLASSPATH 中存在未使用的 JAR 文件的影响

    我在这里阅读了很多有关可用工具的问答unusedJAR 例如 loosejar http code google com p loosejar 类路径助手 http classpathhelper sourceforge net 我的问题是
  • Django 会话竞争条件?

    摘要 Django 会话中是否存在竞争条件 如何防止它 我在 Django 会话方面遇到了一个有趣的问题 我认为该问题涉及由于同一用户同时发出请求而导致的竞争条件 它发生在一个同时上传多个文件的脚本中 正在本地主机上进行测试 我认为这使得同
  • 安全地抛出在另一个线程上创建的异常 C#

    我想在线程A中捕获异常 然后将异常对象传递给线程B 并从线程B中抛出它 这样安全吗 Thread A try Code that throws exceptions catch Exception e sendToOtherThread e
  • 如何使用 xstream 将 Hashmap 映射到 XML 中的键值属性

    我有以下实体 XStreamAlias entity public class MapTestEntity XStreamAsAttribute public Map
  • 使用lib添加自定义字体android

    我正在使用 android 自定义字体 lib Calligraphyhttps github com chrisjenx Calligraphy https github com chrisjenx Calligraphy 但对textv
  • 构建失败:程序类型已存在:com.facebook.ads.Ad

    我尝试在 Android Studio 中构建一个模块 它似乎可以在设备上运行 但是当我尝试构建 APK 时 出现错误 Program type already present com facebook ads Ad 这是完整的日志 org
  • 如何在 eclipse 中安装最新版本的 Xuggler(5.4,截至 18/05/2013)?

    我真的不知道从哪里开始这样做 我已经从网站下载了必要的 Jar 并对如何在 Eclipse 中安装 Xuggler 进行了一些研究 但所有内容都已过时或不相关 我的系统是 64 位 Windows 8 大多数在 Vista 和 Window

随机推荐

  • 查找与 id 匹配的最接近时间戳的行,并添加具有值的行

    我有 2 个数据帧 并且想根据最近的日期时间和匹配 ID 在 df1 中插入一行 其中包含 df2 中的值 df 示例如下 df1 storeID datetime 0 111 2020 01 01 00 50 00 1 222 2020
  • 如何在 Swift 中将数据转换为双精度型、整数型和字符串型等类型?

    我正在努力在 iOS Swift 中为 shapefile 一种 GIS 格式 与这个问题不是特别相关 构建一个自定义文件打开器 这些文件有一个 100 字节长的标头 我可以将其读入 4 字节数组 其中存储我想要的信息 我可以将这些数组转换
  • 分割字符串需要数组声明

    string myStr part1 part2 要分割这个简单的字符串 Split 方法需要传递带有参数的数组 真的吗 为什么我不能直接指定myStr Split 如果我不需要的话 为什么他们希望我声明 char 数组 任何人都可以解释我
  • 打开 Excel 2016 文件失败,HRESULT:0x800706BE

    用于打开现有 Excel 文件的简单 VB NET 代码在打开命令时始终失败 并出现以下错误 远程过程调用失败 HRESULT 异常 0x800706BE 我在 Stack Overflow 和 Microsoft 网站上搜索了这个错误 似
  • 玩 Java 2.0/2.1 和依赖注入

    我们有一个新的 Play 2 0 项目 我们计划在添加一些复杂的第 3 方集成代码时引入 DI Play 2 0 有一个 Guice 插件 但看起来它将在 2 1 中过时 而且我有预感 2 1 已经不远了 https github com
  • 您能解释一下这两个 JavaScript 示例吗?

    1 为什么结果是foo baz不是1 因为 true 是 1 var foo 1 var baz 2 foo baz returns 2 which is true 2 有两个优点console log foo bar 它们的含义是什么 v
  • 有没有办法将协议属性声明为私有?

    我想遵守一个协议 并隐藏要访问的符合的属性 将它们声明为private 考虑以下 protocol P var value String get init value String class C P var value String re
  • Perl 中嵌套数据结构的简单参考或备忘单是什么? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 Perl 中嵌套数据结构的简单参考或备忘单是什么 一个很好的入门教程是perldoc perlreftut http perldoc pe
  • 通过tcp向logstash发送数据

    我在从简单的 java 应用程序将日志数据发送到 logstash 实例时遇到一些问题 对于我的用例 我试图避免使用 log4j logback 而是通过原始 tcp 套接字在单独的行上批处理 json 事件 原因是我希望通过 aws la
  • ListCollectionView 是否泄漏内存?

    我一直在研究如何避免由于强引用而导致的内存泄漏INotifyCollectionChanged来自视图模型的事件 我正在玩弄使用ListCollectionView看看这是否能解决我的问题 我认为以下内容正在泄漏内存 我做错了什么吗 var
  • 管理 Android 应用商店(Google/Amazon/等)的代码/构建?

    我有一个 Android 应用程序 主要是从 Android Market 现在是 Google Play 下载的 我们对源代码进行了一些调整 并提交给亚马逊应用商店 看看它能获得什么样的吸引力 我现在正在寻找一种可持续的方法 从通用代码库
  • 使用 Facebook 的 Javascript SDK 运行 FQL 查询

    这是我的查询 select uid name is app user from user where uid in select uid2 from friend where uid1 me and is app user 1 我需要使用
  • 使用自定义函数计算结构体 Vec 中的部分重复项

    假设我有以下示例 struct Client email String phone String details String fn main let mut clients Vec
  • 如何在 JPanel 中显示图像

    我的问题是如何将图像显示到 JPanel 中 这里询问类似问题的其他主题我不清楚我该如何做到这一点 我的项目文件夹中有一个包含图像文件的目录Project Folder GUI img 具体来说gray png and green png我
  • TSQL 时间序列模式数据挖掘

    获取一个包含以下 3 个字段的 SQL 表 Id TimeStamp Item UserId 我想确定最常见的序列Item for a UserId在一次会议中 会话将简单地由时间阈值来定义 即 如果 X 分钟内没有完整的条目 则任何未来的
  • 异步任务被评估两次

    我使用以下方法同时异步执行一些任务 public async Task
  • 在 AWS SageMaker 上重新托管经过训练的模型

    我已经开始探索 AWS SageMaker 从这些开始AWS 提供的示例 https github com awslabs amazon sagemaker examples tree master introduction to amaz
  • YouTube 上传质量

    我正在使用 google 的 GData API 将视频从我的应用程序上传到 youtube 上传工作正常 但上传视频的质量仅为 360p 而原始视频的质量为 720p 这是否按预期工作 如果是这样 有什么方法可以解决此视频压缩问题 让我的
  • Skype REST API python 开始对话

    刚刚将我的机器人杰西添加到联系人中 现在尝试开始对话但没有任何作用 import requests import requests auth as auth import json url https login microsoftonli
  • 如何在多线程中使用spring事务

    我有一个方法如下 ClassA java Transactional public void methodA ExecutorService executorService Executors newFixedThreadPool 4 ex