【OpenFeign】【源码+图解】【二】注册OpenFeign接口的实例

【OpenFeign】【源码+图解】【一】HelloWorld及其工作原理

3. 注册OpenFeign接口的实例

从HelloWorld中我们看到需要显示加入**@EnableFeignClients注解才能开启openFeign的功能,因此它就成为我们分析openFeign**的入口,先看下这个Annotation的属性

@Import(FeignClientsRegistrar.class) // 这个注册类是关键
public @interface EnableFeignClients {
   
    // 扫描的包,用于寻找open-feign客户端
	String[] value() default {
   };
    // 与value()一样
	String[] basePackages() default {
   };
    // 与value()的字符串不同,这里用的是Class类
	Class<?>[] basePackageClasses() default {
   };
    // 这里声明的配置会在所有的open-feign的clients生效
	Class<?>[] defaultConfiguration() default {
   };
    // @FeignClient声明的类,如果不为空的话前面的包扫描会失效
	Class<?>[] clients() default {
   };
}

先看下FeignClientsRegistrar的类图

在这里插入图片描述

从类图中可以看出FeignClientsRegistrar有以下作用

  1. 注册beans
  2. 获取配置Environment
  3. 获取资源加载器ResourceLoader

那么,接下来我们就开始分析FeignClientsRegistrar要注册哪些beans,入口是实现ImportBeanDefinitionRegistrar接口的registerBeanDefinitions方法

class FeignClientsRegistrar implements ImportBeanDefinitionRegistrar, ResourceLoaderAware, EnvironmentAware {
   
    @Override
	public void registerBeanDefinitions(AnnotationMetadata metadata, BeanDefinitionRegistry registry) 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值