Feign-基于Feign远程调用
Feign远程调用
先来看我们以前利用RestTemplate发起远程调用的代码:
存在下面的问题:
•代码可读性差,编程体验不统一
•参数复杂URL难以维护
Feign是一个声明式的http客户端,官方地址:GitHub - OpenFeign/feign: Feign makes writing java http clients easier
其作用就是帮助我们优雅的实现http请求的发送,解决上面提到的问题。
Feign替代RestTemplate
Fegin的使用步骤如下:
1)引入依赖
我们在order-service服务的pom文件中引入feign的依赖:
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
2)添加注解
在order-service的启动类添加注解开启Feign的功能:
3)编写Feign的客户端
在order-service中新建一个接口,内容如下:
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;@FeignClient("userservice")
public interface UserClient {@GetMapping("/user/{id}")User findById(@PathVariable("id") Long id);
}
这个客户端主要是基于SpringMVC的注解来声明远程调用的信息,比如:
服务名称:userservice
请求方式:GET
请求路径:/user/{id}
请求参数:Long id
返回值类型:User
这样,Feign就可以帮助我们发送http请求,无需自己使用RestTemplate来发送了。
4)测试
修改order-service中的OrderService类中的queryOrderById方法,使用Feign客户端代替RestTemplate:
是不是看起来优雅多了。
5)总结
使用Feign的步骤:
① 引入依赖
② 添加@EnableFeignClients注解
③ 编写FeignClient接口
④ 使用FeignClient中定义的方法代替RestTemplate
Feign-基于Feign远程调用相关推荐
- SpringCloud微服务架构,Spring Cloud 服务治理(Eureka,Consul,Nacos),Ribbon 客户端负载均衡,RestTemplate与OpenFeign实现远程调用
什么是SpringCloud 微服务架构 • "微服务"一词源于 Martin Fowler的名为 Microservices的博文,可以在他的官方博客上找到 http://mar ...
- 使用Spring Cloud Feign作为HTTP客户端调用远程HTTP服务
在spring Cloud Netflix栈中,各个微服务都是以HTTP接口的形式暴露自身服务的,因此在调用远程服务时就必须使用HTTP客户端.我们可以使用JDK原生的URLConnection.Ap ...
- day02 Nacos集群配置、Feign远程调用和统一网关Gateway
1.Nacos配置管理 Nacos除了可以做注册中心,同样可以做配置管理来使用. 统一配置管理 当微服务部署的实例越来越多,达到数十.数百时,逐个修改微服务配置就会让人抓狂,而且很容易出错.我们需要一 ...
- 怎么用feign远程调用别人的接口_Feign - HTTP接口调用- 单独使用 - 实战
目录 疯狂创客圈 Java 分布式聊天室[ 亿级流量]实战系列之 -26[ 博客园 总入口 ] 写在前面 ? 大家好,我是作者尼恩.目前和几个小伙伴一起,组织了一个高并发的实战社群[疯狂创客圈].正在 ...
- Feign远程调用组件与Gateway网关组件
文章目录 1. Feign远程调用组件 1.1 Feign简介 1.2 Feign配置应用 1.3 Feign对负载均衡的支持 1.4 Feign对熔断器的支持 1.5 Feign对请求压缩和响应压缩 ...
- 微服务8 Feign远程调用
目录 1.问题 2.使用 2.1导入依赖 2.2添加注解 2.3编写Feign客户端 2.4修改OrderService 2.3访问 java.lang.AbstractMethodError: Re ...
- Feign远程调用组件 和 GateWay网关组件
在之前的案例中,服务消费者调用服务提供者的时候使用RestTemplate技术. 1.1 Feign简介 Feign是Netflix开发的一个轻量级RESTful的HTTP服务客户端(用它来发起请求,远 ...
- 怎么用feign远程调用别人的接口_spring cloud-openFeign声明式远程调用
spring cloud-openFeign声明式远程调用 1.概述1.1.是什么Feign是一个声明式的Web服务客户端,让编写Web服务客户端变得非常容易,只需创建一个接口并在接口上申明注解Git ...
- 远程调用 Spring Cloud Feign
一. Feign简介 Feign [feɪn] 译文 伪装.Feign是一个声明式WebService客户端.使用Feign能让编写WebService客户端更加简单,它的使用方法是定义一个接口,然后 ...
最新文章
- python 解决conda的environment未被激活解决方案
- 『设计模式』再谈Macdonald的汉堡口味--策略模式
- java aqs实现原理_JAVA基础学习之-AQS的实现原理分析
- bootstrap的依赖_这五款超好用的Bootstrap扩展,让你的Web开发事半功倍
- ORA-00119: invalid specification for system parameter LOCAL_LISTENER;
- INV 调试: 如何获取库存物料事务处理调试信息
- GBase数据库事务隔离级别
- 【树莓派】搭建局域网内网页实时视频监控
- ORA-01045 :user 用户名 lacks create session privilege; logon denied
- vue中接口返回数据过大回显导致页面崩溃解决方法
- 批量保存网页为html文件的几种方法
- 被称为偏执的企业家,他成功跻身中国民企500强
- 高中数学补习:集合与常用逻辑用语
- 设施网络选址的基本方法,网络设施选址的方法
- 《再探设计模式》装饰者:为什么比继承更灵活?
- Ruby on Rails 之旅(七)—— Ruby on Rails 入门(5)
- 硬件学习笔记(器件篇)—— 铝电解电容(二)
- javascript的V8引擎的初步使用
- MATLAB App Designer入门实战(三)
- 漏洞深度分析|CVE-2022-1471 SnakeYaml 命令执行漏洞