加载 BeanDefinition
2019-11-04 14:01:21 0 举报
spring加载XML获取beanDefinition
作者其他创作
大纲/内容
前置后置处理,目前spring为空方法
registerBeanDefinitions
DefaultBeanDefinitionDocumentReader
根据命名空间的不同,做不同的解析处理,分为默认的和自定义的两种
AbstractBeanDefinitionParser
parseCustomElement()
DefaultListableBeanFactory
registerBeanDefinition
parseDefaultElement()
doLoadDocument
默认<bean/>标签
loadBeanDefinitions
parse
false
注册bean,将id,beanDefinition放到beanDefinitionMap
获取处理的NamespaceHandler
开启默认标签解析
解析自定义标签
true
1.2 获取一个默认的spring工厂,根据DefaultListableBeanFactory来创建XmlBeanDefinitionReader对象,使用这个对象来加载resource资源。
import
doRegisterBeanDefinitions
findParserForElement
1. 资源定位
beans
2.装载
获取parse解析器
isDefaultNamespace
1.1 首先会构造一个ClassPathResource,构造方法又两个参数,第一个是文件路径(如果以[/]开头会截取掉),第二个是类加载器(如果不传,默认会获取当前线程的ClassLoader)Thread.currentThread().getContextClassLoader()
注册beanDefinition
parseBeanDefinitionElement
bean
将xml解析源转换为Document对象。里面包括验证模型,获取解析器
alias
XmlBeanDefinitionReader
是否是默认的命名空间
parseBeanDefinitions
系统默认的4种标签
resolve
加载资源文件,获取解析源
NamespaceHandlerSupport
开启解析,注册过程
0 条评论
下一页