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 boot 整合spring cloud alibaba