前言:openfeign看起来高大上,微服务的框架组件,难理解。实际本文可以通过小例子带你0基础进入,并且比较深了解它的原理。下面通过使用小例子、调用过程分析、openfeign的启动注册过程分析讲解。
一 openfeign的使用
1 pom.xml新增依赖
<!-- springboot -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.3</version>
<relativePath/>
</parent>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
<version>3.0.3</version>
</dependency>
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-okhttp</artifactId>
<version>11.1</version>
</dependency>
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-httpclient</artifactId>
<version>11.1</version>
</dependency>
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-gson</artifactId>
<version>11.1</version>
</dependency>
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-slf4j</artifactId>
<version>11.1</version>
</dependency>
2 开启openfeign
3 根据目标地址创建feign客户端接口(实际项目中别人做内部接口时都会提供对应client接口)
目标地址:https://wis.qq.com/weather/common?source=pc&weather_type=observe|forecast_24h|air&province=湖南&city=长沙
创建接口:
调用接口:
4 查看接口调用
5 通过小例子,你可以简单理解openfeign就是HtttpUtils简写方式,通过接口完成http接口封装和调用
二 调用过程分析
1 openfeign是通过什么完成http请求呢?
2 openfeign的接口实现-动态代理实现过程
通过上一步调试,可以发现openfeign实际通过JDK动态代理类ReflectiveFeign完成调用。ReflectiveFeign里注入了http工具类,client,可以是httpclient、okhttp或JDK自带。下面在启动过程分析。
三 openfeign启动过程、注册过程分析(未完待续)