浅谈Spring的BeanDefinitionParser的触发流程

首先需要了解Spring的自定义标签的实现。通过继承NamespaceHandlerSupport 注册parser。下面简单谈谈其中的触发流程

在ApplicationContext的refresh方法中



首先是通过obtainFreshBeanFactory进行beanFactory的初始化创建,里面会读取xml进行解析

refreshBeanFactory才是干正事的。。

获取beanDefinitionReader准备开始解析

这边的loadBeanDefinitions会千回路转,九曲十八弯般最终调用的是XmlBeanDefinitionReader的loadBeanDefinitions。

一如既往的干正事do开头

这边会先从document中拿到root然后开始解析

这边会判断下是否为默认的标签比如bean啥的。。如果是增强或者自定义的则走parseCustomElement

这边会拿到url然后去决定是哪个NamespaceHandler,再调用他的parse方法,例如:mvc 那就是MVCNamespaceHandler

获取对应的parserForElement 然后调用parse,例如:interceptors 所以对应的parse自然是InterceptorsBeanDefinitionParser

end

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值