跳到主要内容

【1】Feign的核心概念及入门案例

文章目录

    1. 什么是Feign
    • 概念
  • 工作原理
  • 核心思想
  • Java 版本兼容性
  • 功能
      1. Clients
      1. async clients
      1. contracts
      1. encoders/decoders
      1. metrics
      1. extras
    1. 常用HTTP客户端案例演示
    • HttpURLConnection
  • HttpClient
  • OkHttp
  • Feign
      1. 引入依赖
      1. 编写Feign 接口
      1. 发送请求

1. 什么是Feign

概念

Feign是—个声明式、模板化的HTTP客户端,GitHub源码地址

在HTTP协议中,发送请求的一方就是HTTP 客户端,在JAVA 中,有很多HTTP 客户端框架。

实际Feign 是为了简化HTTP 客户端开发,实际通信部分还是调用了其他客户端框架。

工作原理

Feign 的工作原理是将注解处理成模板化的请求。

核心思想

Feign是声明式服务调用组件,其核心就是:像调用本地方法一样调用远程方法,无感知远程HTTP请求。

它解决了让开发者调用远程接口就跟调用本地方法一样的体验,开发者完全感知不到这是远程方法,更感知不到这是个HTTP请求。无需关注与远程的交互细节,更无需关注分布式环境开发。

Java 版本兼容性

Feign 10.x 及以上版本基于 Java 8 构建,应该适用于 Java 9、10 和 11。对于需要兼容 JDK 6 的用户,请使用 Feign 9.x。

功能

这是一张包含 feign 提供的当前关键功能的图:
 

1. Clients

Clients 包含了Feign支持的HTTP 客户端:

  • java.net.URL:JDK 提供的网络编程工具包