Eureka 注册的服务之间互相调用

1.请求方

启动类添加注解,扫描Eureka 中的全部服务

 
  1. @SpringBootApplication

  2. @EnableEurekaClient

  3. @EnableFeignClients

  4. public class LoginServiceApplication {

  5. public static void main(String[] args) {

  6. new SpringApplicationBuilder(LoginServiceApplication.class).web(true).run(args);

  7. }

  8. }

pom.xml 添加包 (版本号 根据实际选择)

 
  1. <dependency>

  2. <groupId>org.springframework.cloud</groupId>

  3. <artifactId>spring-cloud-starter-feign</artifactId>

  4. <version>1.4.6.RELEASE</version>

  5. </dependency>

创建接口类

 
  1. @FeignClient(name="hello-service") //spring service name

  2. public interface FeignVehicle {

  3. @RequestMapping(value="/hello", method = RequestMethod.GET)

  4. @ResponseBody

  5. public List<Map> hello(@RequestParam Map<String,String> params);

  6. }

实现类注入此接口类

 
  1. @Autowired

  2. FeignVehicle feignVehicle;

使用的时候直接按照正常调用方式即可

 
  1. Map<String,String> map = new HashMap<String, String>();

  2. feignVehicle.hello(map);

跨服务调用的时候出现token信息取不到,在发送方添加拦截器

 
  1. @Configuration

  2. public class FeignConfiguration {

  3. @Bean

  4. public RequestInterceptor requestInterceptor() {

  5. return new RequestInterceptor() {

  6. @Override

  7. public void apply(RequestTemplate template) {

  8. ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder

  9. .getRequestAttributes();

  10. HttpServletRequest request = attributes.getRequest(); //当前服务token

  11. template.header("Authorization","Bearer " + request.getSession().getId()); //template 接收请求方token

  12. }

  13. };

  14. }

  15. }

2.接收方

请求 启动类

 
  1. @SpringBootApplication

  2. @EnableEurekaClient

  3. public class HelloServiceApplication {

  4. public static void main(String[] args) {

  5. new SpringApplicationBuilder(HelloServiceApplication.class).web(true).run(args);

  6. }

  7. }

请求Controller

 
  1. @Controller

  2. @RequestMapping("/hello")

  3. public class HelloController {

  4. @RequestMapping(value="/hello",method = RequestMethod.GET)

  5. @ResponseBody

  6. public List<Map> hello(@RequestParam Map<String, String> queryParam) {

  7. return null;

  8. }

  9. }

Spring boot 内部服务调用 (FeignClient)相关推荐

  1. restTemplate踩过的坑-spring clound--cloud内部服务调用重试次数

    转载自 https://www.cnblogs.com/jimw/p/9037542.html 现在公司项目基本都从臃肿的项目转换成微服务的方向转换,因此也从中使用了spring clound的一些组 ...

  2. Docker容器及Spring Boot微服务应用

    2019独角兽企业重金招聘Python工程师标准>>> Docker容器及Spring Boot微服务应用 1 什么是Docker 1.1 Docker的出现 问题一:项目实施环境复 ...

  3. Spring Boot 微服务编码风格指南和最佳实践

    文奇摄于世界尽头州立公园 通过多年来使用 Spring Boot 微服务,我编制了一份编码风格指南和最佳实践列表.这份清单并不全面,但我希望您能找到一两点可以借鉴的地方,无论您是新手还是经验丰富的 S ...

  4. Spring Boot微服务间文件返回实现

    Feign接口获取文件流问题_Java_wyazyf的博客-CSDN博客 https://blog.csdn.net/wyazyf/article/details/93200033 Spring Bo ...

  5. spring boot 微服务集群 + 注册中心

    spring boot 微服务框架下载地址: https://start.spring.io/ 注册中心 Eureka Server提供服务注册服务,各个节点启动后,会在Eureka Server中进 ...

  6. Docker基础篇 - (六)Docker 网络Spring Boot微服务打包Docker镜像

    ⑦ Docker 网络 7.1 理解Docker0 清空下前面的docker 镜像.容器 # 删除全部容器 [root@cVzhanshi tomcat-diy]# docker rm -f $(do ...

  7. Spring Boot微服务的黑匣子测试是如此简单

    当我需要进行原型设计,概念验证或在空闲时间使用一些新技术时,开始新项目对于Maven来说总是有点烦人. 不得不说,设置Maven项目并不难,您可以使用Maven原型. 但是原型通常是过时的. 谁想玩旧 ...

  8. 高级版的 jvisualvm :Spring Boot Admin 监控 Spring Boot 微服务项目

    前奏:先说一下 Java VisualVM Java VisualVM 是一个能够监控 JVM 的 jdk 自带的图形化工具: 在 $JAVA_HOME/bin 目录下,可直接运行它. 要想监控远程服 ...

  9. Java spring boot 阿里云调用人脸识别接口,本地sdk上传到阿里云调用api

    Java spring boot 阿里云调用人脸识别接口 没有写测试类,工具类如下,有access_key_id和access_key_secret传参调用就可使用 代码如下: pom.xml依赖 & ...

最新文章

  1. springcloud全局过滤_微服务技术SpringCloud 互联网网站架构演变过程
  2. oracle11g32位安装流程_Oracle 11g服务器安装详细步骤图文详解
  3. 如何创建一个FeatureClass,IFeatureWorkspace 接口漫谈
  4. react demo
  5. C/C++之#ifdef、#if、#if defined的区别
  6. 计算机族应常喝的健康饮品
  7. resultmap拿不到数据_英雄联盟S10:半决赛数据告诉你huanfeng有多强
  8. 泛函编程(4)-深入Scala函数类
  9. 算法 Tricks(六)— if 条件分支的简化
  10. Educoder关联规则挖掘
  11. dda算法c语言opengl实现
  12. 卡巴斯基离线升级方法图解
  13. 基于3DGIS+BIM的房屋出售管理系统
  14. Microsoft Excel 教程,如何在 Excel 中使用自动求和?
  15. 分论坛介绍:机器学习、企业数据中台、实验科学与因果推断
  16. linux启动jar包报Invalid or corrupt jarfile jar错误
  17. Pycharm汉化,Pycharm怎么改成汉语,手把手教学,超详细(汉语插件安装教程)
  18. 通道注意力机制keras_在TensorFlow+Keras环境下使用RoI池化一步步实现注意力机制
  19. python自动化之word操作用python做邀请函
  20. 2020年6月电子学会Python等级考试试卷(一级)考题解析

热门文章

  1. c语言在中职的作用,C语言程序下的中职教学论文
  2. 吴恩达《机器学习》第十四章:降维
  3. 吴恩达深度学习的实用层面编程作业:初始化Initialization
  4. Python3爬虫入门之Request库的使用
  5. UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush)...
  6. linux 版本号 加号,如何去除Linux Kernel版本号后面的加号?
  7. oracle ogg 删除,OGG导致归档无法RMAN删除一例
  8. c 语言转换成java语言,求助大神!!!JAVA转换成C语言
  9. c语言程序输入n个数字排序,请问,C语言能人请进,用写一个程序,要求输入N个整数,按从小到大的顺序输出,就说说...
  10. JSP 文件上传下载系列之一[基本方式上传文件]