通讯时携带Token数据"/>
微服务:OpenFeign进行服务通讯时携带Token数据
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 一、OpenFeign是什么?
- 二、使用场景
- 三、使用步骤
- 1.创建一个FeginClien的配置类
- 2.在@FeginClien注解中添加Configuration属性
- 总结
一、OpenFeign是什么?
Feign是Spring Cloud提供的一个声明式的伪Http客户端, 它使得调用远程服务就像调用本地服务 一样简单, 只需要创建一个接口并添加一个注解即可。
Nacos很好的兼容了Feign,Feign默认集成了 Ribbon, 所以在Nacos下使用Fegin默认就实现了负载均衡的效果。而且是集成的是Ribbon的轮询策略。
二、使用场景
Figen主要的作用是发送Http请求的,Fiegn中携带Token到另一个服务去,需要配置一个Fegin的配置类完成此操作。
三、使用步骤
1.创建一个FeginClient的配置类
代码如下(示例):
import feign.RequestInterceptor;
import feign.RequestTemplate;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;/*** @author : 胡浩* @version 1.0* @description: 描述* @date 2022/11/15 18:37*/
@Configuration
public class FeignConfig implements RequestInterceptor {@Overridepublic void apply(RequestTemplate requestTemplate) {ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();HttpServletRequest request = attributes.getRequest();requestTemplate.header("token", request.getHeader("token"));}
}
2.在@FeginClient注解中添加Configuration属性
代码如下(示例):
import com.trkjmon.vo.AjaxResponse;
import com.trkj.config.FeignConfig;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;@FeignClient(value = "news-comment",configuration = FeignConfig.class)
public interface CommentService {@GetMapping("/comment/lookComment/{newsId}")AjaxResponse lookComment(@PathVariable("newsId") Integer newsId);
}
总结
以上就是OpenFegin在服务之间通讯中,携带token的实现方法了。其实挺简单的,就两步。
最后,欧力给!!!
更多推荐
微服务:OpenFeign进行服务通讯时携带Token数据
发布评论