律师事务所网站设计,wordpress修改网站菜单位置,muiteer主题 wordpress,哪里有免费的seo视频在某种情况下#xff0c;调用第三方或者jar文件中封装的httpClient时#xff0c;上层调用采用异步线程调用#xff0c;导致底层的RestTemplate注入为空#xff0c;无法正常调用#xff0c;需要强制将spring的上下文绑定到异步线程中。 强制传递 Spring 上下文到异步线程
… 在某种情况下调用第三方或者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();}
});