news 2026/2/3 5:57:09

spring项目中业务逻辑涉及异步调用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
spring项目中业务逻辑涉及异步调用

两种异步模型的分叉点

@Async 和CompletableFuture.supplyAsync(() -> { … }) 正面对比

一、两种写法放一起看 👇
1️⃣ 你现在用的(Spring 推荐,企业级)
@Async
public void runTaskAsync(String pasaTaskId, String daHost, String runPath) {
// 异步逻辑
}

调用:

pasaAsyncService.runTaskAsync(…);

2️⃣ CompletableFuture 写法
CompletableFuture.supplyAsync(() -> {
// 异步逻辑
return result;
});

或:

CompletableFuture.runAsync(() -> {
// 无返回值
});

二、核心区别对比(重点)
对比点 @Async CompletableFuture.supplyAsync
线程池管理 ✅ Spring 统一管理 ❌ 默认 ForkJoinPool
是否推荐在 Spring 项目用 ✅ 强烈推荐 ⚠️ 有条件使用
AOP / 事务 / 安全上下文 ✅ 支持 ❌ 不支持
可读性 ✅ 清晰 ⚠️ 容易变复杂
任务编排 ❌ 一般 ✅ 非常强
异常处理 try-catch exceptionally / handle
适合场景 后台任务、接口触发 并行计算 / 流式处理
三、最关键的一点(90% 的坑)
❌ CompletableFuture 默认线程池是:
ForkJoinPool.commonPool()

问题:

❌ 和 JVM 里所有 CompletableFuture 共用

❌ 容易被 CPU 密集任务拖死

❌ 和 Spring 事务、日志 MDC、SecurityContext 无关

👉 在 Web 后台 / 微服务 中,不推荐直接用默认写法

四、如果你非要用 CompletableFuture,正确姿势是这样
✔ 指定线程池(否则不如不用)
CompletableFuture.runAsync(
() -> {
// 业务逻辑
},
pasaExecutor // Spring 注入的线程池
);

这样 本质上和 @Async 是一回事

五、结合你现在这个业务:该选哪个?
你的场景回顾

点击按钮 → 调 DA 接口

不关心返回值

不阻塞接口

需要日志、状态、可控线程

✅ 最优解(你现在的)
@Async
public void runTaskAsync(…) { … }

这是标准后台任务写法,没有任何问题

六、什么时候 CompletableFuture 更适合?
适合 CompletableFuture 的典型场景
CompletableFuture f1 = …
CompletableFuturef2 = …

CompletableFuture result =
f1.thenCombine(f2, (a, b) -> …)
.thenApply(…)
.exceptionally(…)

✔ 并行查询
✔ 聚合结果
✔ 链式处理
✔ 有返回值

👉 偏“计算 / 编排”

七、一句话结论

🔥 Spring 项目中:

接口触发、后台执行 → @Async

并行计算、结果编排 → CompletableFuture + 自定义线程池

❌ 永远不要在 Web 项目里裸用 CompletableFuture.supplyAsync()

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/1 17:06:34

实战|香橙派+YOLOv8 低成本搞定田块分割:从环境搭建到边缘推理全流程

实战|香橙派YOLOv8 低成本搞定田块分割:从环境搭建到边缘推理全流程 在精准农业落地场景中,很多开发者和农户都面临“高算力设备成本高、低成本设备性能不足”的困境。而香橙派作为性价比拉满的开源边缘计算板,搭配YOLOv8高效的分…

作者头像 李华
网站建设 2026/1/18 3:36:44

AI自动画界面?Google这个开源神器让前端工程师失业了

AI自动画界面?Google这个开源神器让前端工程师"失业"了 当产品经理说"给我画个界面",AI说"我来" 你有没有遇到过这种场景:产品经理拿着需求文档找到你,说"这个功能需要一个搜索框、几个筛选…

作者头像 李华
网站建设 2026/2/2 10:36:22

做好孩子视力守护者预防“小眼镜”秘籍在这里

如今,儿童青少年近视率持续攀升,“小眼镜”的出现不仅影响孩子的日常生活与学习,更可能对其长远健康发展构成隐患。作为家长,做好孩子视力的守护者,需掌握科学且系统的防控方法。一、近视高发:近距离用眼引…

作者头像 李华
网站建设 2026/1/22 16:48:25

Nginx 站点垂直扩容(单机性能升级)全攻略

核心:不改变架构、仅升级单台 Nginx 服务器的硬件 / 配置,快速提升并发承载能力,是流量初期增长的最优解,成本低、实施快,优先落地这一套即可解决大部分初期瓶颈。✅ 先明确:Nginx 单机瓶颈核心点Nginx 是事…

作者头像 李华
网站建设 2026/2/3 5:17:17

2026改一个越用越旺的昵称(收藏版)

🍥兜里藏金ᐝ࿐ 吸钞💸体质拉满ཀོ࿐暴富锦鲤ꚸ附体Չᐝ࿐ᩚ ༄ᐝ财运爆棚ഒᩚ࿐🌼᭄好运ꚸ超载Չᐝ࿐ᩚ ꪋꪆ꫁⁵⁰月薪百万꧔🎀᭄༣财神敲门🏠ଓꦿ࿐ 🌼᭄快乐ꚸ溢屏Չᐝ࿐ᩚꪋꪆ᭄好运💕扎堆…

作者头像 李华
网站建设 2026/1/29 1:51:22

智慧医院新范式!东软与西安交通大学第一附属医院全面战略合作

近日,东软集团与西安交通大学第一附属医院共同签署战略合作协议。双方将围绕智慧医院、医工结合、医疗健康产业创新等方面,开启多维度、多层次的全面战略合作。这是双方二十余年稳定、互信合作中的又一里程碑式成果,标志着双方实现了从业务领…

作者头像 李华