async注解失效的原因以及如何在async中拿到request

发布时间:2021-12-22 16:43:30 作者:柒染
来源:亿速云 阅读:627

async注解失效的原因以及如何在async中拿到request,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

 

失效原因

 

使用了async注解后,导致应用出现循环依赖的报错

解决办法:

 

为什么在@async注解的方法中,通过RequestContextHolder 获取 HttpServletRequest为空呢?

因为通过@async注解的方法,会被springboot丢到线程池中去执行,就等于开启了新的线程;但是RequestContextHolder使用ThreadLocal保存request实例的,那么如果在新的线程中肯定会获取不到request的;如果同学们不了解ThreadLocal,可以去了解下,并切这个在面试过程中会经常问到的;

 

那么怎么能在async中获取到request呢?

建议在调用异步方法的时候,将request作为参数传递到异步方法中

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

推荐阅读:
  1. springboot 的异步调用 @Async注解
  2. python中async with和async for怎么用

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

async request

上一篇:如何使用Jenkins构建CI/CD流水线

下一篇:mysql中出现1053错误怎么办

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》