一、OPen Feign是什么?
spring cloud openFeign是对feign的增强,使其支持了Spring MVC注解,另外还整合了Ribbon和Nacos,从而使用的更加方便;它可以做到请求远程服务时就像本地方法一样的体验,使开发者无需关注与远程的交互细节,更无需关注分布式环境开发。
二、使用步骤
1.引入依赖
首先我们在新创建一个商品子模块,然后我们库存服务通过openFeign去调用。
由于openFeign属于spring cloud的内容,所以我们需要引用spring cloud的管理依赖,
当然在前面我已经在父工程引用过了,接下来直接在库存服务引用openFeign依赖。
<!-- spring cloud openfeign--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency>
2.创建调用服务的接口
/** * name: 调用服务配置的spring.application.name,也就是服务的名称 * path: 对应controller的路径 */ @FeignClient(name = "product-server",path = "/product") public interface ProductFeignServer { @PostMapping public String placeProduct(); @GetMapping public String findProduct(); }
3.具体使用
直接依赖进来后会报错,此时需要在启动类上添加@EnableFeignClients,添加完成后就不会报错了。
@GetMapping public String findOrder(){ String product = productFeignServer.findProduct(); if(StringUtils.isNotEmpty(product)){ return "查询库存成功 " + product; } return "查询库存成功"; }
然后就可以像调用本地方法一样的去调用远程服务,所以还是比较清晰方便的。
从截图可以看出,库存成功调用商品服务。
总结
Open Feign总体来说使用还是比较方便的,可能有人说它还需要写对应的接口层一点都不方便,实际上这种方式更符合我们的思维逻辑,就像调用本地方法一样更加的清晰明了,总体来说还是弊大于利的。