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

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

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

場景

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

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

對于不同的線程,每次獲取副本值時(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ì),對大家的學(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)中存在觀感對應(yīng)的按鈕并在用戶點(diǎn)擊相應(yīng)按鈕時(shí)將窗口的觀感切換到指定的觀感上
    2014-03-03
  • SpringBoot+SpringSecurity處理Ajax登錄請求問題(推薦)

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

    這篇文章主要介紹了SpringBoot+SpringSecurity處理Ajax登錄請求問題,本文給大家介紹的非常不錯(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ì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-12-12

最新評論

纳雍县| 罗山县| 临沭县| 疏勒县| 浦城县| 靖江市| 胶南市| 偃师市| 读书| 仲巴县| 泌阳县| 家居| 洞头县| 晋城| 宿州市| 苗栗市| 衢州市| 灵宝市| 陵川县| 呼伦贝尔市| 区。| 敖汉旗| 湖南省| 盐源县| 天镇县| 黄骅市| 永德县| 北海市| 年辖:市辖区| 陇西县| 环江| 郎溪县| 旌德县| 平定县| 松江区| 武隆县| 健康| 天镇县| 新密市| 长顺县| 齐齐哈尔市|