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返回值为复杂对象时其类型必须有无参构造函数。