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

    
    
    
    
    
    
    
    
    
    
    




  • 相关阅读:
    ASP.NET中的特殊路径标识"~"
    ASP.NET中的Request、Response、Server对象
    XSS漏洞(跨站脚本)
    WEB开发原则
    HTTP协议
    【原】从零开始改造淘淘商城(引入dubbo解决项目耦合)02
    【转】Nginx的启动、停止与重启
    【原】spring boot添加cros全局过滤器
    【转】Swagger2 添加HTTP head参数
    【原】Spring Boot 配置swagger2没有文档解决方案
  • 原文地址:https://www.cnblogs.com/LearnSB/p/11309531.html
Copyright © 2020-2023  润新知