栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringCloud动态设置headers

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringCloud动态设置headers

一、原因

在通过 Feign 进行服务调用的过程中,我们需要将用户的 token、lang 等信息放入请求 header 中。

在这个过程中,我们需要继续将用户请求头中的数据保持传递,方便底层服务获取用户登陆状态, 本地化参数等数据。

比如:现在做的项目,采用mybatis租户隔离的方式进行搭建;通过nginx给不同的域名加上xtenant,域名访问的时候会有xtenant,但是如果直接通过微服务进行调用的话,请求不回经过nginx,这样就不会在headers上加入xtenant,导致租户隔离有问题;

二、解决方案

通过入参的方式,设置headers,这样只要给feign调用的接口,增加一个入参,就能解决租户隔离问题。

@FeignClient(value = "rent", fallbackFactory = RentCloudFallbackFactory.class)
public interface RentCloudService {
    @RequestMapping(value = "/api/getUserOrderCount/v1", method = RequestMethod.GET)
    Result getUserOrderCount(@RequestParam("userId") Integer userId, 
    @RequestHeader("xtenant") Long xtenant);
}​

通过这种解决方案,不用改服务实现的接口调用,因为你不知道,这个接口到底有多少服务接口在调用,你只要在相应的需要调用的地方,传入headers参数,就完美解决问题。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/831925.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号