Spring Cloud 组件 —— Feign

Feign基本介绍

Feign介绍

  • Feign是一个非常好用的HTTP客户端
  • Feign很大程序上简化了HTTP调用方式,可以调用HTTP API
  • Feign很好的弥补了SpringCloud的HTTP调用缺陷

Feign能干什么

  • Feign包含了多种HTTP的调用形式(有封装的注解等等)
  • Feign可以整合Ribbon和Hystrix
  • Feign提供了多种HTTP底层支持(比如RestTemplate/WebClient)

Feign特性

  • Feign实现了可插拔注解支持,包括Feign和JAX-RS注解
  • Feign支持可插拔的HTTP编码器和解码器
  • Feign支持HTTP请求和响应的压缩

Feign环境配置和基本使用

Feign使用步骤

  • 集成Feign环境
  • 添加FeignClient注解
  • 业务接口添加类似SpringMVC注解

基础环境

  • 引入openfeign依赖包
// https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter
compile group: 'org.springframework.cloud', name: 'spring-cloud-starter', version: '2.2.4.RELEASE'
// https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-openfeign
compile group: 'org.springframework.cloud', name: 'spring-cloud-starter-openfeign', version: '2.2.4.RELEASE'
  • 在application中通过注解开启EnableFeignClient支持@EnableFeignClients
  • 创建业务接口
    • 添加FeignClient注解
      • name
      • url - 注解访问目标地址(协议/host/port)
    • 添加业务方法
      • 添加URI和method支持
      • 编写入参和返回值
@FeignClient(name="providerTest", url="https://baidu.com")
public interface ProviderService {
    @RequestMapping(value="/", method=RequestMethod.GET)
    String invokerBaidu();
}
// 可以通过Controller调用此接口的方法[直接注入ProviderService即可]

Feign支持多种HTTP调用形式

  • SpringMVC
    • 支持
      • @RequestMapping
      • @RequestParam
      • @PathVariable
      • @RequestHeader
      • @RequestBody
    • 不支持
      • @GetMapping
      • @PostMapping

Feign整合Ribbon和Hystrix

未完待续…

Feign的实战技巧

未完待续…

你可能感兴趣的:(SpringCloud相关组件)