当前位置: 首页 > 技术研究 > Java > java 解决新线程中无法获取到RequestAttributes属性

java 解决新线程中无法获取到RequestAttributes属性

发布于:2021-2-9 Java 1条评论 4,669 views
欢迎光临小站,愿能为您提供帮助与启发,热爱分享、享受分享、乐于分享,让我们携手共同进步。
例如会报错:there is no request context
在调用线程或线程池之前设置:
RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
RequestContextHolder.setRequestAttributes(requestAttributes,true);

因为渲染中会调用request调用子请求,所以需要将RequestAttributes对象设置为子线程共享

简单来说就是,调用setRequestAttributes方法以后就把原来放在ThreadLocal对象中的属性放到InheritableThreadLocal对象中了,这就是为什么子线程可以获取到HttpServletRequest 对象的原因。

注:仅适用于从Request里面取attributes属性

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据


已有1条评论