async注解失效的原因以及如何在async中拿到request
发表于:2024-10-21 作者:千家信息网编辑
千家信息网最后更新 2024年10月21日,async注解失效的原因以及如何在async中拿到request,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。失效原因A
千家信息网最后更新 2024年10月21日async注解失效的原因以及如何在async中拿到request
async注解失效的原因以及如何在async中拿到request,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
失效原因
Application启动类中没有添加@EnableAsync注解开启异步; 添加async注解的方法和当前调用者在同一个类中,会导致async失效: 因为在本方法内调用异步方法不会被AsyncAnnotationAdvisor切面拦截进行代理,如果不能被代理的话,那么走的肯定还是普通方法,导致异步失效。
使用了async注解后,导致应用出现循环依赖的报错
解决办法:
将async注解的方法移到一个新的service类中,可以快速解决; 当然你也可以使用@lazy注解去处理那些导致循环依赖的类;
为什么在@async注解的方法中,通过RequestContextHolder 获取 HttpServletRequest为空呢?
因为通过@async注解的方法,会被springboot丢到线程池中去执行,就等于开启了新的线程;但是RequestContextHolder使用ThreadLocal保存request实例的,那么如果在新的线程中肯定会获取不到request的;如果同学们不了解ThreadLocal,可以去了解下,并切这个在面试过程中会经常问到的;
那么怎么能在async中获取到request呢?
建议在调用异步方法的时候,将request作为参数传递到异步方法中
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。
注解
方法
线程
原因
代理
帮助
循环
肯定
中看
普通
清楚
内容
切面
办法
参数
同学
实例
对此
建议
文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
es数据库技术
档案信息网络安全
网络安全管理局有编制吗
网络安全普及英文
重装上阵服务器优化视频
数据库access 说课稿
服务器搭建多个安卓模拟器
sql2008数据库拆分
dnf防御服务器
什么是电脑服务器文件
软件开发产品服务理念
数据库允许空的约束
辽宁新零售软件开发
最大数据库
怎么查找论文的原始数据库
服务器做虚拟化流程
数据库系统查询优化
cad怎么取消测量数据库
大专计算机网络技术人工智能
国产服务器证书
软件开发和数据管理
光明区质量网络技术开发咨询报价
肿瘤学生物信息学数据库
网络安全宣传标语的视频
实验八数据库的完整性约束
学java后需要学什么数据库
网络安全知识专题讲座读后感
苏州光源软件开发
数据库系统查询优化
数据库架构技术