Fegin

客户端实现原理

主要实现了ImportBeanDefinitionRegistar

  1. 使用了spring的 @Import中 ImportBeanDefinitionRegistar 注册bd
    1. 通过AnnotationMetadata可以获取所有的bd的属性
    2. 通过BeanDefinitionRegistrar可以注册bd。
  2. 使用了动态代理和反射技术,将我们的FeginClient接口代理成具有发送到服务端请求的实现类
  3. 使用了spring boot中SPI技术
    1. 判断该组件是否符合自动装配条件
    2. 该类是否存在spring-factories中自动装配候选类中。

image.png
image.png
该类中方法
image.png
image.png
image.png
image.png

image.png