阶段5 3.微服务项目【学成在线】_day09 课程预览 Eureka Feign_07-Feign远程调用-Feign测试

2.2.1 Feign介绍
Feign是Netflix公司开源的轻量级rest客户端,使用Feign可以非常方便的实现Http 客户端。Spring Cloud引入
Feign并且集成了Ribbon实现客户端负载均衡调用。

上节课的restTemplate的方式需要定义url地址 还需要定义返回的类型Map

相当于调用本地方法一样去远程调用。

引入feign

starter‐openfeign里面就继承了ribbon。所以ribbon的引用可以注释掉了。 

讲义里面 还说要引入feign-ok-http

定义client的包,定义借口而CmsPageClient

定义接口方法



feign需要告诉ribbon调用哪个服务




注入CmsPageClient


测试

运行测试方法提示找不到Bean


加注解 开启FeignClient注解


再次运行有值返回

工作原理

Feign工作原理如下:
1、 启动类添加@EnableFeignClients注解,Spring会扫描标记了@FeignClient注解的接口,并生成此接口的代理
对象
2、 @FeignClient(value = XcServiceList.XC_SERVICE_MANAGE_CMS)即指定了cms的服务名称,Feign会从注册中
心获取cms服务列表,并通过负载均衡算法进行服务调用。
3、在接口方法 中使用注解@GetMapping("/cms/page/get/{id}"),指定调用的url,Feign将根据url进行远程调
用。

注意点

2.2.4 Feign注意点
SpringCloud对Feign进行了增强兼容了SpringMVC的注解 ,我们在使用SpringMVC的注解时需要注意:
1、feignClient接口 有参数在参数必须加@PathVariable("XXX")和@RequestParam("XXX")
2、feignClient返回值为复杂对象时其类型必须有无参构造函数。

原文地址:https://www.cnblogs.com/wangjunwei/p/11664486.html