天天看點

springcloud-feign核心源碼解析一

一[email protected]

springboot內建的自動配置閱讀源碼首先搜 @EnableFeignClients,

發現這個enable注解導入了FeignClientsRegistrar類。

springcloud-feign核心源碼解析一

FeignClientsRegistrar實作了ImportBeanDefinitionRegistrar接口,如果讀過spring源碼的話知道spring會調用registerBeanDefinitions方法來注入bean。如下圖

springcloud-feign核心源碼解析一

看這兩行包裝過的代碼就知道這裡注入的是預設的配置類和feign bean。

2.registerDefaultConfiguration解讀

代碼解釋如圖:

springcloud-feign核心源碼解析一

二.registerFeignClients解讀

1.spring内置的掃描類ClassPathScanningCandidateComponentProvider,用來掃描@FeignClient注解的類,也就是feign client

springcloud-feign核心源碼解析一

2.ClassPathScanningCandidateComponentProvider掃描出來的beanDefinition周遊注冊到beanDefinition

springcloud-feign核心源碼解析一

下篇再解釋feign client注冊到beanDefinition的詳細設定吧。

繼續閱讀