声明式REST调用—Feign初探

一、什么是Feign

  Feign旨在使编写Java Htpp客户端变得更容易,在Spring Cloud中,使用Feign非常简单——创建一个接口,并在接口上添加注解即可。Feign通过处理注解,将请求模板化,当实际调用的时候,传入参数,根据参数再应用到请求上,进而转化成真正的请求,这种请求相对而言比较直观。

  Feign是Spring Cloud组件中的一个轻量级RESTful的HTTP服务客户端
  Feign内置了Ribbon,用来做客户端负载均衡,去调用服务注册中心的服务。
  Feign的使用方式是:使用Feign的注解定义接口,调用这个接口,就可以调用服务注册中心的服务
  Feign本身不支持Spring MVC的注解,它有一套自己的注解

  OpenFeign是Spring Cloud 在Feign的基础上支持了Spring MVC的注解

二、使用Feign

  1、添加依赖:spring-cloud-starter-feign

  2、创建一个Feign接口(name/value属性: 作用一样,指定调用服务的微服务名称;url : 指定调用服务的全路径)

@FeignClient(name = "microservice-provider-user")
public interface UserFeignClient {
  @RequestMapping(value = "/{id}", method = RequestMethod.GET)
  public User findById(@PathVariable("id") Long id);
}
Feign接口

  3、修改controller代码

@RestController
public class MovieController {
  @Autowired
  private UserFeignClient userFeignClient;
 
  @GetMapping("/user/{id}")
  public User findById(@PathVariable Long id) {
    return this.userFeignClient.findById(id);
  }
}
调用Feign

  4、修改启动类,为其添加@EnableFeignClients注解

三、自定义Feign配置

四、手动创建Feign

五、Feign对继承的支持

六、Feign对压缩的支持

七、Feign的日志

八、使用Feign构造多参数请求

后面都是些高级用法,目前还没有看懂,等我看懂了再来补充

posted on 2019-12-24 21:40  灰马非马  阅读(221)  评论(0编辑  收藏  举报

导航