Spring源码-xml解析-类调用顺序

Spring启动时,在应用上下文刷新的时候,会开始做xml的解析。

第一步 new 

XmlBeanDefinitionReader

再就是获取Xml的配置文件路径循环迭代,

然后将配置文件路径信息解析成一个又一个的Resource对象.

然后通过

DefaultDocumentLoader类去获得 w3c的Document对象. 

然后开始去解析xml配置文件.

DefaultBeanDefinitionDocumentReader类呢,是一个比较关键的类,他区分了是解析默认的xml命名空间还是说解析的自定义的命名空间.先往下看.

解析的过程中还会传入new出来的XmlReaderContext对象,具体是啥用途,我们往下看.

解析的过程中,我们还会创建一个BeanDefinitionParserDelegate类

接下来就是比较关键的了,是看解析的xml配置文件是是默认的命名空间呢,以及是自定义的命名空间。(beans即为默认的命名空间除开beans的,比如tx context之类的全是自定义的命名空间)。

默认的命名空间下的,我们会解析的标签是四种<import> ,<alias> ,<bean> 以及<beans>.

解析自定义的命名空间的xml配置文件的话,我们是根据namespaceUri获取到对应的NamespaceHandler,然后再在NamespaceHandler类中,获取BeanDefinitionParser用于对特定的标签来进行解析.那么是如何获得BeanDefinitionParser呢,其实就是从一个Map对象里get出来的.

map对象的注入时机的话,比如:

很熟悉吧,上面的代码,都是xml里的标签的元素名.

  • 8
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值