java異步調(diào)用Feign接口空指針問題解決
異步調(diào)用Feign接口空指針問題原因
Feign接口的Request 默認(rèn)是主線程和子線程不共享的,當(dāng)異步調(diào)用Feign接口會(huì)因?yàn)楂@取不到ServletRequestAttributes報(bào)空指針。
解決方案
我們先獲取到當(dāng)前請(qǐng)求,再分享給子線程。
首先獲取attributes :
RequestAttributes attributes = RequestContextHolder.getRequestAttributes();//防止fegin獲取不到當(dāng)前請(qǐng)求
在線程中設(shè)置attributes :
RequestContextHolder.setRequestAttributes(attributes);
實(shí)例代碼
ExecutorService executorService = Executors.newSingleThreadExecutor();
List<ExportFamilyMasterImplForm> finalList = list;
RequestAttributes attributes = RequestContextHolder.getRequestAttributes();//防止fegin獲取不到當(dāng)前請(qǐng)求
executorService.execute(()->{
RequestContextHolder.setRequestAttributes(attributes);
List<ExportFamilyMasterForm> excelList = familyMemberService.dataTransformation(finalList);
});以上就是java異步調(diào)用Feign接口空指針問題解決的詳細(xì)內(nèi)容,更多關(guān)于java異步調(diào)用Feign的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
java 設(shè)計(jì)模式之依賴倒置實(shí)例詳解
這篇文章主要介紹了java 設(shè)計(jì)模式之依賴倒置,結(jié)合實(shí)例形式詳細(xì)分析了依賴倒置的相關(guān)概念、原理、使用技巧及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-11-11
Druid(新版starter)在SpringBoot下的使用教程
Druid是Java語言中最好的數(shù)據(jù)庫連接池,Druid能夠提供強(qiáng)大的監(jiān)控和擴(kuò)展功能,DruidDataSource支持的數(shù)據(jù)庫,這篇文章主要介紹了Druid(新版starter)在SpringBoot下的使用,需要的朋友可以參考下2023-05-05
Java List移除相應(yīng)元素的超簡(jiǎn)潔寫法分享
這篇文章主要介紹了Java List移除相應(yīng)元素的超簡(jiǎn)潔寫法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11
Spring-AOP自動(dòng)創(chuàng)建代理之BeanNameAutoProxyCreator實(shí)例
這篇文章主要介紹了Spring-AOP自動(dòng)創(chuàng)建代理之BeanNameAutoProxyCreator實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07

