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

    
    
    
    
    
    
    
    
    
    
    




  • 相关阅读:
    python-----删除文件到回收站
    python-----列表生成式和列表生成器表达
    html5 标准文档结构
    java基础之 类型转换
    java基础之 数据类型
    java基础之 变量
    java基础之 开发环境配置
    通用登录界面1.1
    mysql获取字段信息
    喵喵喵?
  • 原文地址:https://www.cnblogs.com/LearnSB/p/11309531.html
Copyright © 2011-2022 走看看