流程图- xml解析和BeanDefinition封装核心方法refreshBeanDefinition
2021-03-12 23:44:31 0 举报
登录查看完整内容
对spring源码的一种理解
作者其他创作
大纲/内容
2.registeerBeanDefinitions
返回BeanFactory
2,解析bean标签的属性,并把解析出来的属性设置到BeanDefinition对象中
7,解析bean中的property标签
registerBeanDefiniotions
4, 解析bean中的lookup-method标签
把流对象封装成inputSource对象,这个是JDK中的sax解析对象
2,BeanDefinitionDocumentReader对象,专门负责解析Document对象
AbstractRefeshableApplicationContext
6, 解析bean中的constructor-arg标签
解析xml,并把xml中年的标签封装成BeanDefinition对象loadBeanDefinition(BeanFactory)
registerBeandefinition完成对BeanDefinition对象的注册过程,beanDefinitionNames容器对象要牢记,后面实例化过程要用到
xml解析器对象,这里用到到了委托模式
refreshBeanfactory()
AbstractBeanDefintionReader
DefautBeanDefinitonDocumentReader
字符串类型的xml文件路径,转换为Resource对象,这里涉及到模糊匹配,例如classpath*:user/**/*..context.xml
DefaulListableBeanFactory
BeanDefinitionParseDelegate
5,解析bean 中的replaced-method标签
3,加载META-INF/spring。handlers配置文件,建立映射关系
loadBeanDefinition (encodeResource)
根据namespaceUri从映射关系中获取NamespaceHander处理类
委托给Reader进行Xml解析loadBeanDefinitions
AbstractXmlApplicationContext
5,调用NamespaceHandler的parse方法,开始真正标签解析过程
1.创建GenericBeanDefintion对象
AbstractApplicationContext.obtainFreshBeanFactroy
getBeanFactiry
从Resource对象中后去文件流对象
4,调用NamespaceHandler的init方法完成,标签解析的注册
doLoadBeanDefinitions
parseBeanDefinitionElement
创建xmlBeanDefintionReader对象
3. 解析bean中的meta标签
1,获取标签中的namespaceUri
4,processBeanDefinition
xmlBeanDefinitionReader
默认标签解析3, parseDefaultElement
根据inputSource,通过JDK中的SAX解析,生成Document对象1,doLoadDocument
创建BeanDefinitionDocumentReader对象,专门负责解析Document对象,委托模式
0 条评论
回复 删除
下一页