美文网首页
bean解析及注册源码

bean解析及注册源码

作者: satyrs_sh | 来源:发表于2021-01-18 23:23 被阅读0次

    S1xml文件等资源类 -- 对各种资源类的封装+encode

    resource.jpg

    S2读取xml文件 -- 对xml文件的校验、load、read(这里的read调用BeanDefinitionDocumentReader)
    主要在XmlBeanDefinitionReader

    S3解析属性(xml中标签) --从xml到Bean
    实现在DefaultBeanDefinitionDocumentReader
    doRegisterBeanDefinitions() 中解析了profile属性,并且其中的parseBeanDefinitions()是解析xml的开始。

    根据不同的namespacenodename,分别不同处理

            if (delegate.nodeNameEquals(ele, IMPORT_ELEMENT)) {
                importBeanDefinitionResource(ele);
            }
            else if (delegate.nodeNameEquals(ele, ALIAS_ELEMENT)) {
                processAliasRegistration(ele);
            }
            else if (delegate.nodeNameEquals(ele, BEAN_ELEMENT)) {
                processBeanDefinition(ele, delegate);
            }
            else if (delegate.nodeNameEquals(ele, NESTED_BEANS_ELEMENT)) {
                // recurse
                doRegisterBeanDefinitions(ele);
            }
    

    处理过程涉及到BeanDefinitionParserDelegate BeanDefinitionHolder BeanDefinitionReaderUtils XmlReaderContext

    delegate中对元素(属性)进行解析,结果放入holder中,此时holder已经包含了各种属性。再由Utils中将holder进行注册。最后由context将注册结果通知监听器。

    S4注册

    相关文章

      网友评论

          本文标题:bean解析及注册源码

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