前情提要:
一、Fegin介绍:
- Feign是一个声明式的http客户端,官方地址:https://github.com/OpenFeign/feign
- 作用:帮助我们实现http请求的发送替代RestTemplate,解决上面提到的问题。
- 这里只是讲的简单的调用,实际开发需要可能需要在请求头里设置鉴权信息
二、Fegin的使用
Fegin的使用步骤如下,以order-service(消费者)为例:
a).引入依赖
我们在order-service(消费者)服务的pom文件中引入feign的依赖:
<!-- Feign远程调用 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
b).添加注解
在order-service的启动类添加注解 @EnableFeignClients 开启Feign的功能:
c).编写Feign的客户端
- 启动类下创建一个文件夹clients–>创建接口UserClient
- 注解FeignClient需要指定服务名称
- 完成接口的声明,就可以使用了
@FeignClient("userservice") // 指定服务名称
public interface UserClient {
@GetMapping("/user/{id}")
User findById(@PathVariable Long id);
}
说明:
- 这个客户端主要是基于SpringMVC的注解来声明远程调用的信息,比如:
-
服务名称:userservice
-
请求方式:GET
-
请求路径:/user/{id}
-
请求参数:Long id
-
返回值类型:User
-