美文网首页
【Spring源码】18.IOC之ConfigurationCl

【Spring源码】18.IOC之ConfigurationCl

作者: 天还下着毛毛雨 | 来源:发表于2023-02-06 15:03 被阅读0次
    image

    5.注册

    对应的解析结果都放在对应容器后, 开始注册BeanDefinition,以及对应接口的调用

    image

    遍历 ConfigurationClassParser 里的 ConfigurationClass集合,开始注册

    image

    5.1 进行@Conditional 判断

    image

    5.2 注册被@Import导入的类,不包含 实现了 ImportBeanDefinitionRegistrar,DeferredImportSelector接口的类

    image

    创建BeanDefinitionHolder对象

    并注册到容器中

    image

    5.2 将每个带有@Bean的方法封装成BD,填充属性

    遍历beanMethods容器,

    image

    ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForBeanMethod (beanMethod) 方法

    5.2.1 创建BeanDefinition对象

    image

    5.2.2 设置FactoryBeanName,

    设置FactoryBeanName,以后用 FactoryBeanName对应的方法实例化

    image

    5.2.3 填充BD的其他属性

    设置initMethod,destroyMethod,Scope,autowireCandidate

    image

    5.2.4 注册BeanDefinition

    image

    5.3 注册@ImportResource导进来的applicationContext.xml文件配置的类

    @ImportResource可以导入一个applicationContext.xml文件,注册里面配置的类

    image image image

    接下来的代码似曾相识,就是 解析applicationContext.xml配置文件的代码,之前的文章里有,这里就不赘述了

    image

    5.4 调用导入@Import进来的ImportBeanDefinitionRegistrars接口类型的registerBeanDefinitions方法

    image

    遍历ConfigurationClass对象里的importBeanDefinitionRegistrars集合,调用ImportBeanDefinitionRegistrar接口的registerBeanDefinitions()方法

    image

    最终会调用到我们自己被@Import导进来的,实现了ImportBeanDefinitionRegistrar接口的registerBeanDefinitions方法里

    image

    相关文章

      网友评论

          本文标题:【Spring源码】18.IOC之ConfigurationCl

          本文链接:https://www.haomeiwen.com/subject/udetkdtx.html