Feign的源碼實現的過程如下:
- 首先通過@EnableFeignCleints注解開啟FeignCleint
- 根據Feign的規則實現接口,並加@FeignCleint注解
- 程序啟動后,會進行包掃描,掃描所有的@ FeignCleint的注解的類,並將這些信息注入到ioc容器中。
- 當接口的方法被調用,通過jdk的代理,來生成具體的RequesTemplate
- RequesTemplate在生成Request
- Request交給Client去處理,其中Client可以是HttpUrlConnection、HttpClient也可以是Okhttp
- 最后Client被封裝到LoadBalanceClient類,這個類結合類Ribbon做到了負載均衡。
- 原文:https://blog.csdn.net/forezp/article/details/73480304
