目录
一、Feign、RestTemplate对比
二、Feign使用步骤
2.1. 引入依赖
2.2. 在service的启动类添加注解,开启Fergn的功能
2.3. 编写Feign客户端
一、Feign、RestTemplate对比
利用RestTemplate发起远程调用的代码:
String url = "http://userservice/user/" + order.getUserId();
User user = restTemplate.getForObject(url,User.class);
存在下面的问题:
- 代码可读性差,编程体验不统一
- 参数复杂URL难以维护
Feign是一个声明式的http客户端,官方地址: https://github.com/OpenFeign/feign其作用就是帮助我们优雅的实现http请求的发送,解决上面提到的问题。
二、Feign使用步骤
2.1. 引入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
2.2. 在service的启动类添加注解,开启Fergn的功能
2.3. 编写Feign客户端
主要是基于SpringMVC的注解来声明远程调用的信息,比如:
- 服务名称: userservice
- 请求方式:GET
- 请求路径:/user/{id}
- 请求参数:Longid
- 返回值类型:User
2.4. 效果
三、总结
Feign的使用步骤
- 引入依赖
- 添加@EnableFeignClients注解
- 编写FeignClient接口
- 使用FeignClient中定义的方法代替RestTemplate