文章目录
- 一、Feign
 - 二、Gateway服务网关
 
一、Feign
 
 来看我们以前利用RestTemplate发起远程调用的代码:
  
 
 存在下面的问题:
- 代码可读性差,编程体验不统一(url需要自己在代码中拼写出来)
 - 参数复杂URL难以维护(有时候访问一个页面所携带的参数是非常多的)
 
Feign是一个声明式的http客户端。其作用就是帮助我们优雅的实现http请求的发送,解决上面提到的问题。
  
 通过导包和添加注解后,可以写出一个通用http请求用接口:
@FeignClient("userservice")
public interface UserClient {
    @GetMapping("/user/{id}")
    User findById(@PathVariable("id") Long id);
}
 
这个客户端主要是基于SpringMVC的注解来声明远程调用的信息,比如:
- 服务名称:userservice
 - 请求方式:GET
 - 请求路径:/user/{id}
 - 请求参数:Long id
 - 返回值类型:User
 
  这样,Feign就可以帮助我们发送http请求,无需自己使用RestTemplate来发送了。基于UserClient接口可以完成http请求,就像是调用另外一个方法一样,是不是看起来优雅多了:
 



















