最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決Feign配置RequestContextHolder.getRequestAttributes()為null的問題

 更新時(shí)間:2024年01月18日 09:33:23   作者:07feng  
這篇文章主要介紹了解決Feign配置RequestContextHolder.getRequestAttributes()為null的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

場(chǎng)景

feign配置如下

異步代碼中調(diào)用feign

當(dāng)用在異步代碼中用feign調(diào)用微服務(wù)時(shí),后臺(tái)日志中出現(xiàn)報(bào)錯(cuò)信息NullPoinntException

分析原因

關(guān)于RequestContextHolder

實(shí)現(xiàn)原理 ThreadLocal

ThreadLocal是一個(gè)本地線程副本變量工具類。主要用于將私有線程和該線程存放的副本對(duì)象做一個(gè)映射,各個(gè)線程之間的變量互不干擾,在高并發(fā)場(chǎng)景下,可以實(shí)現(xiàn)無狀態(tài)的調(diào)用,特別適用于各個(gè)線程依賴不同的變量值完成操作的場(chǎng)景。

在每個(gè)線程的內(nèi)部存在一個(gè)數(shù)據(jù)結(jié)構(gòu)為Map的ThreadLocals變量,以<ThreadLocal,Value>的形式保存著線程變量和其對(duì)應(yīng)的值。

對(duì)于不同的線程,每次獲取副本值時(shí),別的線程并不能獲取到當(dāng)前線程的副本值,形成了副本的隔離,互不干擾。

原因

RequestContextHolder將當(dāng)前線程中的request信息存儲(chǔ)在ThreadLocal中,開啟另外一個(gè)線程異步調(diào)用feign,httpRequest是綁定在ThreadLocal中的,只能在當(dāng)前線程中共享,子線程是不能獲取到父線程的屬性。

解決方案

1、取消異步調(diào)用,改為同步調(diào)用

2、沿用異步調(diào)用,但是在調(diào)用前,把父線程request信息綁定給子線程,在方法執(zhí)行的前面,加入以下語句

下面展示一些 內(nèi)聯(lián)代碼片。

RequestContextHolder.setRequestAttributes(RequestContextHolder.getRequestAttributes(), true);

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。 

相關(guān)文章

  • Java語法基礎(chǔ)之函數(shù)的使用說明

    Java語法基礎(chǔ)之函數(shù)的使用說明

    函數(shù)就是定義在類中的具有特定功能的一段小程序,函數(shù)也稱為方法
    2013-07-07
  • 基于java中的流程控制語句總結(jié)(必看篇)

    基于java中的流程控制語句總結(jié)(必看篇)

    下面小編就為大家?guī)硪黄趈ava中的流程控制語句總結(jié)(必看篇)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06
  • 區(qū)塊鏈常用數(shù)據(jù)庫leveldb用java來實(shí)現(xiàn)常規(guī)操作的方法

    區(qū)塊鏈常用數(shù)據(jù)庫leveldb用java來實(shí)現(xiàn)常規(guī)操作的方法

    這篇文章主要介紹了區(qū)塊鏈常用數(shù)據(jù)庫leveldb用java來實(shí)現(xiàn)常規(guī)操作,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • Maven中生命周期的具體使用

    Maven中生命周期的具體使用

    在 Maven 出現(xiàn)之前,項(xiàng)目構(gòu)建的生命周期就已經(jīng)存在,本文主要介紹了Maven中生命周期的具體使用,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • github上的java項(xiàng)目怎么運(yùn)行(面向小白)

    github上的java項(xiàng)目怎么運(yùn)行(面向小白)

    這篇文章主要介紹了github上的java項(xiàng)目怎么運(yùn)行(面向小白),今天從github把我以前寫的一個(gè)小demo下載下來了,第一次下載項(xiàng)目,摸索了一個(gè)多小時(shí),才運(yùn)行起來,需要的朋友可以參考下
    2019-06-06
  • Spring?Boot?基于?CAS?實(shí)現(xiàn)單點(diǎn)登錄的原理、實(shí)踐與優(yōu)化全解析(最新整理)

    Spring?Boot?基于?CAS?實(shí)現(xiàn)單點(diǎn)登錄的原理、實(shí)踐與優(yōu)化全解析(最新整理)

    本文詳解SpringBoot集成CAS單點(diǎn)登錄的原理、實(shí)現(xiàn)步驟及優(yōu)缺點(diǎn),涵蓋CASServer與Client架構(gòu)、票據(jù)機(jī)制、配置方法,并提供優(yōu)化策略如集群部署、緩存加速和用戶體驗(yàn)提升方案,助力企業(yè)實(shí)現(xiàn)統(tǒng)一認(rèn)證與高效管理,感興趣的朋友一起看看吧
    2025-07-07
  • java觀感示例分享

    java觀感示例分享

    這篇文章主要介紹了java觀感示例,該實(shí)例查詢并生成了系統(tǒng)中存在觀感對(duì)應(yīng)的按鈕并在用戶點(diǎn)擊相應(yīng)按鈕時(shí)將窗口的觀感切換到指定的觀感上
    2014-03-03
  • SpringBoot+SpringSecurity處理Ajax登錄請(qǐng)求問題(推薦)

    SpringBoot+SpringSecurity處理Ajax登錄請(qǐng)求問題(推薦)

    這篇文章主要介紹了SpringBoot+SpringSecurity處理Ajax登錄請(qǐng)求問題,本文給大家介紹的非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-12-12
  • Java異常處理實(shí)例教程

    Java異常處理實(shí)例教程

    這篇文章主要為大家分享一份非常詳細(xì)的Java異常處理實(shí)例教程,幫助大家更好的學(xué)習(xí)java異常處理,感興趣的小伙伴們可以參考一下
    2016-02-02
  • Java?Process中waitFor()的問題詳解

    Java?Process中waitFor()的問題詳解

    這篇文章主要給大家介紹了關(guān)于Java?Process中waitFor()問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-12-12

最新評(píng)論

固原市| 金秀| 舞阳县| 五指山市| 沙坪坝区| 瑞丽市| 青铜峡市| 定南县| 友谊县| 贡嘎县| 周口市| 英超| 德庆县| 峨山| 无棣县| 黄梅县| 东海县| 江油市| 石景山区| 富阳市| 松潘县| 怀柔区| 抚州市| 梁河县| 铜梁县| 德保县| 绵竹市| 蒲江县| 会昌县| 松江区| 乐平市| 临沂市| 鄂州市| 营口市| 盐源县| 德兴市| 静乐县| 新疆| 云安县| 瑞昌市| 灵寿县|