天天看点

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的详细设置吧。

继续阅读