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

异步线程中使用RestTemplate注入空指针解决

在某种情况下,调用第三方或者jar文件中封装的httpClient时,上层调用采用异步线程调用,导致底层的RestTemplate注入为空,无法正常调用,需要强制将spring的上下文绑定到异步线程中。

强制传递 Spring 上下文到异步线程

假如这里使用的hutool的异步线程工具:

使用 ThreadUtil.execAsync 时,需手动将 Spring 上下文绑定到异步线程

import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;// 捕获主线程的上下文
RequestAttributes mainThreadContext = RequestContextHolder.getRequestAttributes();// 将主线程上下文绑定到异步线程
RequestContextHolder.setRequestAttributes(mainThreadContext, true); // 第二个参数 true 表示继承所有属性ThreadUtil.execAsync(() -> {try {// 调用 JAR 包方法 或者 第三方SDKHttpClient.doGet(...);} catch (Exception e) {log.error("异步请求异常", e);} finally {// 清理线程上下文RequestContextHolder.resetRequestAttributes();}
});
http://www.lryc.cn/news/535039.html

相关文章:

  • 2024BaseCTF_week4_web上
  • 说一下 jvm 有哪些垃圾回收器?
  • react国际化配置react-i18next详解
  • Java并发编程——上下文切换、死锁、资源限制
  • MS08067练武场--WP
  • ubuntu文件同步
  • C++23 新特性解析
  • 算法05-堆排序
  • Arrays工具类详解
  • 无人机图像拼接数据的可视化与制图技术:以植被监测为例
  • 在 debian 12 上安装 mysqlclient 报错
  • python基础入门:7.1迭代器与生成器
  • Docker 容器 Elasticsearch 启动失败完整排查记录
  • 达梦数据使用笔记
  • 操作系统中的任务调度算法
  • Linux 虚拟服务器(LVS)技术详解
  • AIoT时代来临,物联网技术如何颠覆未来生活?
  • C++17 新特性解析
  • 嵌入式软件C语言面试常见问题及答案解析(四)
  • 在 C# 中,处理 Excel 和 PDF 文件的库有很多。以下是一些比较常用的选择
  • 绩效归因概述
  • Spring Boot 中加载多个 YAML 配置文件
  • 厚植创新实力、聚焦生物科技:柏强制药的责任与机遇
  • Linux中getifaddrs函数
  • 【HarmonyOS Next 自定义可拖拽image】
  • 解决No module named ‘llama_index.llms.huggingface‘
  • SearchBar组件的功能与用法
  • 13.推荐系统的性能优化
  • Grafana-使用Button修改MySQL数据库
  • 飞科FH6218电吹风异响维修