zoukankan      html  css  js  c++  java
  • Feign源码探索之旅

    我们从FignClientsRegistrar这个类开始首次探索.

    FignClientsRegistrar实现了三个接口分别是ImportBeanDefinitionRegistrar,ResourceLoaderAware,EnvironmentAware;

    其中ImportBeanDefinitionRegistrar定义了方法void registerBeanDefinitions(AnnotationMetadata var1, BeanDefinitionRegistry var2); 

    方法实现如图:

    ResourceLoaderAware定义了方法void setResourceLoader(ResourceLoader var1); 
    EnvironmentAware定义了方法void setEnvironment(Environment var1);

    ps:加this关键字的原因是

     this.属性名称                

                       指的是访问类中的成员变量,用来区分成员变量和局部变量(重名问题).完成对 对象变量的赋值.

    首先看一下

    -registerDefaultConfiguration(metadata AnnotationMetadata, registry BeanDefinitionRegistry)void

    然后就看一下

    -registerClientConfiguration(registry BeanDefinitionRegistry, name Object, configuration Object)void

    ps:我已经看到崩溃..这都哪儿跟哪儿....看源码就像玩跳一跳,一会儿就不知道跳到哪里去了...

    好了,去吃午饭.

    I`m back

    接下来看

    +registerBeanDefinition(beanName String, beanDefinition BeanDefinition)void

    1图解如下:

    外层hasText

    内层hasText

     内层hasText的containsText方法

    额,要不今天先这样子.

    2图解

    3图解

    1)图解

    +validate()void

    gao

     前方高能预警,源码轰炸.(我看得时候很懵.看完了更懵*^*)

     

     2)当beanDefinition不是AbstractBeanDefinition时,抛出异常: Validation of bean definition failed

    我赶脚上了ze趟车就下不来了.....

    图4其实就是以String类型的beanName作为key取出BeanDefinition类型的value

    图5我想了想,不解释了.

    图6如果BeanDefinition类型的existingDefinition不为空且此映射包含对于指定的键的映射关系,那么重置类定义.

    
    
    
    
    
    
    
    
    
    
    




  • 相关阅读:
    4月19日 疯狂猜成语-----第五次站立会议 参会人员:杨霏,袁雪,胡潇丹,郭林林,尹亚男,赵静娜
    prototype
    angularJs scope的简单模拟
    angularjs DI简单模拟
    洗牌算法
    深入探索 TCP TIME-WAIT
    Logitech k480 蓝牙键盘连接 ubuntu 系统
    在 centos6 上安装 LAMP
    vlc 播放器的点播和广播服务
    Linux 文件系统及 ext2 文件系统
  • 原文地址:https://www.cnblogs.com/LearnSB/p/11309531.html
Copyright © 2011-2022 走看看