Spring boot 内部服务调用 (FeignClient)
Eureka 注册的服务之间互相调用
1.请求方
启动类添加注解,扫描Eureka 中的全部服务
@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients
public class LoginServiceApplication {
public static void main(String[] args) {
new SpringApplicationBuilder(LoginServiceApplication.class).web(true).run(args);
}
}
pom.xml 添加包 (版本号 根据实际选择)
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
创建接口类
@FeignClient(name="hello-service") //spring service name
public interface FeignVehicle {
@RequestMapping(value="/hello", method = RequestMethod.GET)
@ResponseBody
public List<Map> hello(@RequestParam Map<String,String> params);
}
实现类注入此接口类
@Autowired
FeignVehicle feignVehicle;
使用的时候直接按照正常调用方式即可
Map<String,String> map = new HashMap<String, String>();
feignVehicle.hello(map);
跨服务调用的时候出现token信息取不到,在发送方添加拦截器
@Configuration
public class FeignConfiguration {
@Bean
public RequestInterceptor requestInterceptor() {
return new RequestInterceptor() {
@Override
public void apply(RequestTemplate template) {
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder
.getRequestAttributes();
HttpServletRequest request = attributes.getRequest(); //当前服务token
template.header("Authorization","Bearer " + request.getSession().getId()); //template 接收请求方token
}
};
}
}
2.接收方
请求 启动类
@SpringBootApplication
@EnableEurekaClient
public class HelloServiceApplication {
public static void main(String[] args) {
new SpringApplicationBuilder(HelloServiceApplication.class).web(true).run(args);
}
}
请求Controller
@Controller
@RequestMapping("/hello")
public class HelloController {
@RequestMapping(value="/hello",method = RequestMethod.GET)
@ResponseBody
public List<Map> hello(@RequestParam Map<String, String> queryParam) {
return null;
}
}
Spring boot 内部服务调用 (FeignClient)相关推荐
- restTemplate踩过的坑-spring clound--cloud内部服务调用重试次数
转载自 https://www.cnblogs.com/jimw/p/9037542.html 现在公司项目基本都从臃肿的项目转换成微服务的方向转换,因此也从中使用了spring clound的一些组 ...
- Docker容器及Spring Boot微服务应用
2019独角兽企业重金招聘Python工程师标准>>> Docker容器及Spring Boot微服务应用 1 什么是Docker 1.1 Docker的出现 问题一:项目实施环境复 ...
- Spring Boot 微服务编码风格指南和最佳实践
文奇摄于世界尽头州立公园 通过多年来使用 Spring Boot 微服务,我编制了一份编码风格指南和最佳实践列表.这份清单并不全面,但我希望您能找到一两点可以借鉴的地方,无论您是新手还是经验丰富的 S ...
- Spring Boot微服务间文件返回实现
Feign接口获取文件流问题_Java_wyazyf的博客-CSDN博客 https://blog.csdn.net/wyazyf/article/details/93200033 Spring Bo ...
- spring boot 微服务集群 + 注册中心
spring boot 微服务框架下载地址: https://start.spring.io/ 注册中心 Eureka Server提供服务注册服务,各个节点启动后,会在Eureka Server中进 ...
- Docker基础篇 - (六)Docker 网络Spring Boot微服务打包Docker镜像
⑦ Docker 网络 7.1 理解Docker0 清空下前面的docker 镜像.容器 # 删除全部容器 [root@cVzhanshi tomcat-diy]# docker rm -f $(do ...
- Spring Boot微服务的黑匣子测试是如此简单
当我需要进行原型设计,概念验证或在空闲时间使用一些新技术时,开始新项目对于Maven来说总是有点烦人. 不得不说,设置Maven项目并不难,您可以使用Maven原型. 但是原型通常是过时的. 谁想玩旧 ...
- 高级版的 jvisualvm :Spring Boot Admin 监控 Spring Boot 微服务项目
前奏:先说一下 Java VisualVM Java VisualVM 是一个能够监控 JVM 的 jdk 自带的图形化工具: 在 $JAVA_HOME/bin 目录下,可直接运行它. 要想监控远程服 ...
- Java spring boot 阿里云调用人脸识别接口,本地sdk上传到阿里云调用api
Java spring boot 阿里云调用人脸识别接口 没有写测试类,工具类如下,有access_key_id和access_key_secret传参调用就可使用 代码如下: pom.xml依赖 & ...
最新文章
- springcloud全局过滤_微服务技术SpringCloud 互联网网站架构演变过程
- oracle11g32位安装流程_Oracle 11g服务器安装详细步骤图文详解
- 如何创建一个FeatureClass,IFeatureWorkspace 接口漫谈
- react demo
- C/C++之#ifdef、#if、#if defined的区别
- 计算机族应常喝的健康饮品
- resultmap拿不到数据_英雄联盟S10:半决赛数据告诉你huanfeng有多强
- 泛函编程(4)-深入Scala函数类
- 算法 Tricks(六)— if 条件分支的简化
- Educoder关联规则挖掘
- dda算法c语言opengl实现
- 卡巴斯基离线升级方法图解
- 基于3DGIS+BIM的房屋出售管理系统
- Microsoft Excel 教程,如何在 Excel 中使用自动求和?
- 分论坛介绍:机器学习、企业数据中台、实验科学与因果推断
- linux启动jar包报Invalid or corrupt jarfile jar错误
- Pycharm汉化,Pycharm怎么改成汉语,手把手教学,超详细(汉语插件安装教程)
- 通道注意力机制keras_在TensorFlow+Keras环境下使用RoI池化一步步实现注意力机制
- python自动化之word操作用python做邀请函
- 2020年6月电子学会Python等级考试试卷(一级)考题解析
热门文章
- c语言在中职的作用,C语言程序下的中职教学论文
- 吴恩达《机器学习》第十四章:降维
- 吴恩达深度学习的实用层面编程作业:初始化Initialization
- Python3爬虫入门之Request库的使用
- UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush)...
- linux 版本号 加号,如何去除Linux Kernel版本号后面的加号?
- oracle ogg 删除,OGG导致归档无法RMAN删除一例
- c 语言转换成java语言,求助大神!!!JAVA转换成C语言
- c语言程序输入n个数字排序,请问,C语言能人请进,用写一个程序,要求输入N个整数,按从小到大的顺序输出,就说说...
- JSP 文件上传下载系列之一[基本方式上传文件]