1. 引入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
2. 使用流程
2.1 开启远程调用功能
添加 @EnableFeignClients 注解
2.2 创建远程调用客户端
@FeignClient(value = "service-product") 表示远程调用 service-product 这个微服务
"service-product" 要和注册中心中注册的服务名称相同,不要填错!
2.3 使用客户端发送远程调用(如果有多个服务,远程调用时自动负载均衡)
在 order 服务依赖注入远程调用的客户端:
在 order 服务中远程调用 product 服务中的接口:
实际上调用的是 product 服务里面的 controller:
这里将数据写死了:
访问对应的接口,果然能得到响应数据:
总结
1. 想要使用 openfeign 实现服务之间的远程调用,需要先在需要远程调用的服务中添加 @EnableFeignClients 注解。
2. 使用 @FeignClient(value = "远程服务的名称") 注解创建好远程调用的客户端。并且在内部填写需要调用的远程服务的接口,注意写上对应的注解(@GetMapping/@PostMapping),填好路径参数。
3. 在服务中通过依赖注入远程调用的客户端,在业务中直接调用这个远程服务的接口即可。