Spring IOC之BeanDefinition加载、解析、注册

本文深入探讨了Spring中BeanDefinition的概念,它作为Bean元数据的角色。接着详细阐述了XML配置文件中BeanDefinition如何被加载和注册的过程,涉及的方法包括loadBeanDefinitions、doLoadBeanDefinitions等,解析XML节点并注册BeanDefinition到BeanDefinitionMap。
摘要由CSDN通过智能技术生成

一、BeanDefinition的定义

BeanDefinition是定义Spring容器中Bean信息的元数据对象。这些Bean信息包括Bean的类名、属性、作用域等。

二、XML配置文件中的BeanDefinition的加载和注册

  1. BeanDefinitionReader loadBeanDefinitions(Resource resource) 
    1. XmlBeanDefinitionReader loadBeanDefinitions
      1. XmlBeanDefinitionReader doLoadBeanDefinitions
        1. XmlBeanDefinitionReader doLoadDocumentXML文件加载为文档对象
          1. DefaultDocumentLoader loadDocument
        2. XmlBeanDefinitionReader registerBeanDefinitions
          1. XmlBeanDefinitionReader createBeanDefinitionDocumentReader
          2. getRegistry().getBeanDefinitionCount();
          3. DefaultBeanDefinitionDocumentReader registerBeanDefinitions(Document doc, XmlReaderContext readerContext)
            1. DefaultBeanDefinitionDocumentReader doRegisterBeanDefinitions(Element root)
              1. DefaultBeanDefinitionDocumentReader parseBeanDefinitions
                1. DefaultBeanDefinitionDocumentReader parseDefaultElement解析XML节点的Bean信息)
                  1. DefaultBeanDefinitionDocumentReader importBeanDefinitionResource(import标签解析)
                  2. DefaultBeanDefinitionDocumentReader processAliasRegistration(alias标签解析)
                  3. DefaultBeanDefinitionDocumentReader processBeanDefinitionbean标签解析)
                    1. BeanDefinitionParserDelegate parseBeanDefinitionElement
                      1. BeanDefinitionParserDelegate checkNameUniqueness(检查 beanName 的唯一性)
                    2. BeanDefinitionReaderUtils registerBeanDefinition(bean信息注册到BeanDefinitionMap)
                  4. DefaultBeanDefinitionDocumentReader doRegisterBeanDefinitions

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值