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

SpringBoot如何通過Feign調(diào)用傳遞Header中參數(shù)

 更新時間:2023年04月26日 10:38:56   作者:溫柔的星空,讓你感動  
這篇文章主要介紹了SpringBoot通過Feign調(diào)用傳遞Header中參數(shù),本文給大家分享兩種解決方案給大家詳細講解,需要的朋友可以參考下

【SpringBoot】通過Feign調(diào)用傳遞Header中參數(shù)

如何通過Feign傳遞Header參數(shù)

問題描述

我們在SpringCloud中使用Feign請求另一個服務(wù)的Api接口時,有將Header中參數(shù)傳遞下去的需求,如果不做特殊處理,就會將Header中的參數(shù)丟失。

解決方案

方案一:通過 @RequestHeader(name = "headerName") 來傳遞

例如:Feign定義如下

@FeignClient(name = "service-name")
public interface XXXFeignClient {
    @RequestMapping(value = "/user/getUserTicket", method = RequestMethod.GET)
    String getUserTicket(@RequestParam("id") String id);
}

假設(shè)在服務(wù)service-name中的/user/getUserTicket接口需要從Header中取Referer數(shù)據(jù),那么我們可以將上面代碼進行改造:

@FeignClient(name = "service-name")
public interface XXXFeignClient {
    @RequestMapping(value = "/user/getUserTicket", method = RequestMethod.GET)
    String getUserTicket(@RequestParam("id") String id, @RequestHeader(name = "Referer") String referer);
}

然后在調(diào)用的時候?qū)eferer參數(shù)傳遞進去即可,如

public String getTicketById(@RequestParam("id") String id, HttpServletRequest request) {
        String referer = request.getHeader("Referer");
        return xxxFeignClient.getUserTicket(id, referer);
    }

方案二:通過實現(xiàn) RequestInterceptor 接口

 首先,自定義實現(xiàn)RequestInterceptor接口的apply方法,如下

import org.springframework.stereotype.Configuration;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.util.Enumeration;
@Configuration
public class FeignConfiguration implements RequestInterceptor {
    @Override
    public void apply(RequestTemplate requestTemplate) {
        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder
                .getRequestAttributes();
        HttpServletRequest request = attributes.getRequest();
        Enumeration<String> headerNames = request.getHeaderNames();
        if (headerNames != null) {
            while (headerNames.hasMoreElements()) {
                String name = headerNames.nextElement();
                String values = request.getHeader(name);
                requestTemplate.header(name, values);
            }
        }
    }
}

 然后將自定義的配置類配置到Feign中,就可以實現(xiàn)該Feign中接口Header參數(shù)的傳遞

@FeignClient(value = "service-name" ,configuration = FeignConfiguration.class)
    public interface XXXFeignClient {
    }

到此這篇關(guān)于SpringBoot 通過Feign調(diào)用傳遞Header中參數(shù)的文章就介紹到這了,更多相關(guān)SpringBoot Feign調(diào)用傳遞Header參數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 模擬Spring的簡單實現(xiàn)

    模擬Spring的簡單實現(xiàn)

    本文的主要內(nèi)容就是學(xué)習(xí)Spring的開端,模擬一下Spring的實現(xiàn),感興趣的小伙伴可以參考一下
    2015-10-10
  • Java中常用緩存Cache機制的實現(xiàn)

    Java中常用緩存Cache機制的實現(xiàn)

    這篇文章主要介紹了Java中常用緩存Cache機制的實現(xiàn)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • ChatGPT-4.0未來已來 你來不來

    ChatGPT-4.0未來已來 你來不來

    最近聽說了一個非?;鸬募夹g(shù)ChatGPT4.0,今天這篇文章就給大家介紹一下ChatGPT究竟是什么東東,不得不說ChatGPT是真的強,下面就讓我們一起了解究竟什么是ChatGPT吧
    2023-03-03
  • Mybatis映射文件之常用標(biāo)簽及特殊字符的處理方法

    Mybatis映射文件之常用標(biāo)簽及特殊字符的處理方法

    這篇文章主要介紹了Mybatis映射文件常用標(biāo)簽及特殊字符的處理,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-05-05
  • Java深度復(fù)制功能與用法實例分析

    Java深度復(fù)制功能與用法實例分析

    這篇文章主要介紹了Java深度復(fù)制功能與用法,簡單講述了深度復(fù)制的概念、功能并結(jié)合實例形式分析了java實現(xiàn)深度復(fù)制的具體操作技巧,需要的朋友可以參考下
    2018-01-01
  • springboot?aop里的@Pointcut()的配置方式

    springboot?aop里的@Pointcut()的配置方式

    這篇文章主要介紹了springboot?aop里的@Pointcut()的配置方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • java 中newInstance()方法和new關(guān)鍵字的區(qū)別

    java 中newInstance()方法和new關(guān)鍵字的區(qū)別

    這篇文章主要介紹了java 中newInstance()方法和new關(guān)鍵字的區(qū)別的相關(guān)資料,希望通過本文大家能掌握他們之家的區(qū)別與用法,需要的朋友可以參考下
    2017-09-09
  • 深入理解Java中沒那么簡單的單例模式

    深入理解Java中沒那么簡單的單例模式

    這篇文章主要給大家詳細介紹了Java單例模式,關(guān)于Java中的單例模式并非看起來那么簡單的,為什么要這么說呢?下面通過這篇文章來一起看看吧,有需要的朋友們可以參考借鑒。
    2017-01-01
  • java 動態(tài)生成SQL的實例講解

    java 動態(tài)生成SQL的實例講解

    下面小編就為大家?guī)硪黄猨ava 動態(tài)生成SQL的實例講解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • 如何在Spring?Boot框架中使用攔截器實現(xiàn)URL限制

    如何在Spring?Boot框架中使用攔截器實現(xiàn)URL限制

    在Spring?Boot框架中,您可以使用攔截器(Interceptor)來控制限制URL列表,本文通過一個簡單的示例給大家介紹Spring?Boot?攔截器實現(xiàn)URL限制的操作方法,感興趣的朋友跟隨小編一起看看吧
    2023-08-08

最新評論

威远县| 剑阁县| 榆树市| 弥勒县| 方城县| 瓦房店市| 尖扎县| 石河子市| 武强县| 安国市| 安龙县| 绵竹市| 沁源县| 巢湖市| 黄陵县| 忻城县| 皋兰县| 鹰潭市| 仁布县| 上蔡县| 南川市| 沧州市| 湘乡市| 错那县| 元江| 平原县| 巫山县| 永安市| 莱州市| 当阳市| 兴义市| 济源市| 盐山县| 剑川县| 大英县| 枝江市| 霍山县| 旺苍县| 白沙| 屏边| 姚安县|