S1xml文件等资源类
– 对各种资源类的封装+encode
S2读取xml文件
– 对xml文件的校验、load、read(这里的read调用BeanDefinitionDocumentReader)
主要在XmlBeanDefinitionReader
中
S3解析属性(xml中标签)
–从xml到Bean
实现在DefaultBeanDefinitionDocumentReader
doRegisterBeanDefinitions()
中解析了profile
属性,并且其中的parseBeanDefinitions()
是解析xml的开始。
根据不同的namespace
和nodename
,分别不同处理
1 | if (delegate.nodeNameEquals(ele, IMPORT_ELEMENT)) { |
处理过程涉及到BeanDefinitionParserDelegate BeanDefinitionHolder BeanDefinitionReaderUtils XmlReaderContext
delegate中对元素(属性)进行解析,结果放入holder中,此时holder已经包含了各种属性。再由Utils中将holder进行注册。最后由context将注册结果通知监听器。
S4注册
本文作者:
yuqing wang
本文链接: https://satyrswang.github.io/2021/03/11/bean解析及注册源码/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!
本文链接: https://satyrswang.github.io/2021/03/11/bean解析及注册源码/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!