Spring Cloud Alibaba - 15 微服务之间使用Feign实现参数的透传

Posted 小小工匠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Cloud Alibaba - 15 微服务之间使用Feign实现参数的透传相关的知识,希望对你有一定的参考价值。

文章目录


业务场景

服务A 获取到Token值后,要传递给 服务B进行校验 。

在微服务架构下如何实现呢?

实现

自定义拦截器

artisan-feign-api 子模块 增加 拦截器


import feign.RequestInterceptor;
import feign.RequestTemplate;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

import javax.servlet.http.HttpServletRequest;

/**
 * @author 小工匠
 * @version 1.0
 * @description: TODO
 * @date 2022/2/4 0:52
 * @mark: show me the code , change the world
 */


public class ArtisanRequestInterceptor implements RequestInterceptor 

    @Override
    public void apply(RequestTemplate requestTemplate) 
        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        HttpServletRequest request = attributes.getRequest();
        requestTemplate.header("token", request.getHeader("token"));
    

    

然后实例化


暴漏接口

因为是从header中获取参数 ,所以

@RequestHeader("token") String token

服务实现

服务提供者 artisan-cloud-feign-product


服务调用者

artisan-cloud-feign-order 写个测试接口,测测吧

验证


观察下OORDER的日志

源码

https://github.com/yangshangwei/SpringCloudAlibabMaster

以上是关于Spring Cloud Alibaba - 15 微服务之间使用Feign实现参数的透传的主要内容,如果未能解决你的问题,请参考以下文章

Spring Cloud Alibaba环境搭建

Spring Cloud Alibaba全家桶——Spring Cloud Alibaba介绍

Spring Cloud Alibaba系列教程——Spring Cloud Alibaba开篇

spring boot 整合spring cloud alibaba

spring boot 整合spring cloud alibaba

深度剖析Spring Cloud Alibaba系列——如何兼容Spring Cloud