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

SpringCloud OpenFeign遠(yuǎn)程調(diào)用傳遞請(qǐng)求頭信息方式

 更新時(shí)間:2026年03月19日 08:45:48   作者:lingering fear  
這篇文章主要介紹了SpringCloud OpenFeign遠(yuǎn)程調(diào)用傳遞請(qǐng)求頭信息方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

1.實(shí)現(xiàn)RequestInterceptor接口

package com.liuxs.common.core.config;

import feign.RequestInterceptor;
import feign.RequestTemplate;
import lombok.extern.slf4j.Slf4j;
import org.springframework.util.Assert;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

import javax.servlet.http.HttpServletRequest;
import java.util.Enumeration;


/**
 * @author: Liu Yuehui
 * @ClassName: RequestInterceptor
 * @date: 2022/12/16 19:01
 * @description: Feign請(qǐng)求攔截器(設(shè)置請(qǐng)求頭,傳遞登錄信息)
 **/
@Slf4j
public class FeignBasicAuthRequestInterceptor implements RequestInterceptor{

    @Override
    public void apply(RequestTemplate requestTemplate) {
        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder
                .getRequestAttributes();

        Assert.notNull(attributes , "FeignBasicAuthRequestInterceptor apply() attributes is null");

        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);
            }
        }
        Enumeration<String> bodyNames = request.getParameterNames();
        StringBuilder body = new StringBuilder();
        if (bodyNames != null) {
            while (bodyNames.hasMoreElements()) {
                String name = bodyNames.nextElement();
                String values = request.getParameter(name);
                body.append(name).append("=").append(values).append("&");
            }
        }
        if(body.length() != 0) {
            body.deleteCharAt(body.length()-1);
            requestTemplate.body(body.toString());
            log.info("feign interceptor body:{}" , body.toString());
        }
    }
}

2.注冊(cè)配置

package com.liuxs.gateway.config;

import com.liuxs.common.core.config.FeignBasicAuthRequestInterceptor;
import feign.RequestInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @author: Liu Yuehui
 * @ClassName: FeignSupportConfig
 * @date: 2022/12/16 19:21
 * @description: Feign配置注冊(cè)(全局)
 **/
@Configuration
public class FeignSupportConfig {

    @Bean
    public RequestInterceptor requestInterceptor() {
        return new FeignBasicAuthRequestInterceptor();
    }

}

我在工程中是這樣使用的:

總結(jié)

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

相關(guān)文章

  • Spring使用@Value注解與@PropertySource注解加載配置文件操作

    Spring使用@Value注解與@PropertySource注解加載配置文件操作

    這篇文章主要介紹了Spring使用@Value注解與@PropertySource注解加載配置文件操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • JavaCV實(shí)現(xiàn)照片馬賽克效果

    JavaCV實(shí)現(xiàn)照片馬賽克效果

    這篇文章主要介紹了如何通過(guò)JavaCV實(shí)現(xiàn)照片馬賽克效果,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)JavaCV有一定的幫助,感興趣的小伙伴可以跟隨小編一起動(dòng)手試一試
    2022-01-01
  • SpringBoot+Vue實(shí)現(xiàn)動(dòng)態(tài)菜單的思路梳理

    SpringBoot+Vue實(shí)現(xiàn)動(dòng)態(tài)菜單的思路梳理

    這篇文章主要為大家詳細(xì)介紹了利用SpringBoot+Vue實(shí)現(xiàn)動(dòng)態(tài)菜單的思路梳理,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以動(dòng)手嘗試一下
    2022-07-07
  • SpringBoot整合Shiro靜態(tài)資源攔截配置實(shí)踐

    SpringBoot整合Shiro靜態(tài)資源攔截配置實(shí)踐

    本文介紹了Spring?Boot整合Thymeleaf訪問(wèn)resources目錄下static靜態(tài)資源的方法,并提供三種解決方式,方法一通過(guò)修改訪問(wèn)路徑,方法二在yml文件中修改配置,方法三通過(guò)創(chuàng)建statics目錄并調(diào)整攔截配置來(lái)實(shí)現(xiàn)
    2026-05-05
  • 使用JPA自定義VO類型轉(zhuǎn)換(EntityUtils工具類)

    使用JPA自定義VO類型轉(zhuǎn)換(EntityUtils工具類)

    這篇文章主要介紹了使用JPA自定義VO類型轉(zhuǎn)換(EntityUtils工具類),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • MyBatis-Plus的基本CRUD操作大全

    MyBatis-Plus的基本CRUD操作大全

    本文介紹了MyBatis-Plus框架中BaseMapper和IService兩大核心組件的使用,,通過(guò)示例代碼演示了如何實(shí)現(xiàn)數(shù)據(jù)插入、刪除、修改、查詢等操作,并展示了條件構(gòu)造器、分頁(yè)查詢、事務(wù)處理等實(shí)用功能,感興趣的朋友跟隨小編一起看看吧
    2026-02-02
  • 手把手寫(xiě)Spring框架

    手把手寫(xiě)Spring框架

    Spring是于2003 年興起的一個(gè)輕量級(jí)的Java 開(kāi)發(fā)框架,由Rod Johnson創(chuàng)建。簡(jiǎn)單來(lái)說(shuō),Spring是一個(gè)分層的JavaSE/EE full-stack(一站式) 輕量級(jí)開(kāi)源框架
    2021-08-08
  • SpringBoot 并發(fā)登錄人數(shù)控制的實(shí)現(xiàn)方法

    SpringBoot 并發(fā)登錄人數(shù)控制的實(shí)現(xiàn)方法

    這篇文章主要介紹了SpringBoot 并發(fā)登錄人數(shù)控制的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • Springboot?注解EqualsAndHashCode詳解

    Springboot?注解EqualsAndHashCode詳解

    注解@EqualsAndHashCode主要用于自動(dòng)生成equals方法和hashCode方法,callSuper屬性為true時(shí),生成的方法會(huì)包括父類字段,為false則只包含當(dāng)前類字段,IDEA工具中有檢查提示并可自動(dòng)修復(fù)相關(guān)代碼,確保注解正確使用,更多詳解可查閱相關(guān)文檔
    2024-10-10
  • Java中Collection與Collections的區(qū)別詳解

    Java中Collection與Collections的區(qū)別詳解

    這篇文章主要為大家詳細(xì)介紹了Java中Collection與Collections的區(qū)別,文中有詳細(xì)的代碼示例,具有一定的參考價(jià)值,感興趣的同學(xué)可以參考一下
    2023-06-06

最新評(píng)論

蒙城县| 吉林省| 岱山县| 新竹市| 鄂州市| 谷城县| 灌阳县| 得荣县| 寿阳县| 富川| 吉木萨尔县| 福安市| 白河县| 美姑县| 诸城市| 沙河市| 二手房| 华池县| 乐业县| 信阳市| 榆社县| 若尔盖县| 永州市| 长治县| 田林县| 乐清市| 翁牛特旗| 罗甸县| 盘山县| 大关县| 兖州市| 榆林市| 武冈市| 佛坪县| 象山县| 册亨县| 隆化县| 信丰县| 江油市| 东丽区| 广宁县|