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不为空且此映射包含对于指定的键的映射关系,那么重置类定义.

    
    
    
    
    
    
    
    
    
    
    




  • 相关阅读:
    (转)iPhone开发经典语录集锦
    在iPone环境下要保存数据
    DevExpress自定义控件 ComboBoxEdit ,RepositoryItemComboBox,实现按拼音字母检索
    常用IPHONE 编程 基础代码
    使用Locating 系统查询手机号码归属地
    JUnit4使用 实例+基础介绍
    5分钟快速了解JSON,实例项目动手做
    eclipse常用快捷键
    Ubuntu12.04下JDK、Eclipse的安装,在linux终端中用命令启动eclipse
    Jackson 框架,轻易转换JSON
  • 原文地址:https://www.cnblogs.com/LearnSB/p/11309531.html
Copyright © 2011-2022 走看看