原理:
将微服务之间的调用请求伪装成本地请求。提供feign客户端,封装HTTP请求,从而不需要关注其他微服务的URL地址以及请求的方法参数等等。一切由feign去处理。
feign 支持springMVC注解方式,所以可以使用@GetMapping 等方式来简便的提供url 地址 feign 底层实现是动态代理,通过反射找到对应的类,编码方式类似mybatis 的接口实现方式。
实现步骤:
1、增加依赖
org.springframework.cloud spring-cloud-starter-openfeign
2、增加注解
在springboot 启动器中增加 @EnableFeignClients //启用feign
3、增加接口提供给fegin 并提供被调用方法的 相关参数(返回值,传参,服务地址,方法名)
/** * 提供相关参数 返回值,传参,服务地址,方法名 */ @FeignClient("USER-SERVICE") //微服务地址 public interface UserClient { @GetMapping("user/{id}") //调用路径 String queryById(@PathVariable String id); }4、调用该接口
@Autowired UserClient userClient; @GetMapping("{id}") public String findOne(@PathVariable String id) { return userClient.queryById(id); }
https://files.cnblogs.com/files/lanSeGeDiao/springCloud-demo.zip以上是springCloud的DEMO例子 请自行复制路径到浏览器