Spring笔记03-Spring解析默认标签
来源:互联网 发布:淘宝网宠物 编辑:程序博客网 时间:2024/06/08 08:01
Spring解析默认标签的流程概括来讲就是,将root下的element节点转换成beanDefinition,然后将beanName和beanDefiniton放到beanDefinitionMap里(这里的
beanDefinitionMap是一个ConcurrentHashMap实例,它存放在DefaultListableBeanFactory里)。
具体流程是这样的:我们从函数doRegisterBeanDefinitions(root)进来,从根到叶子迭代地处理每个元素,如果元素里的标签是beans,就调用doRegisterBeanDefiniton(ele)处理,如果元素里的标签是bean,就调用processBeanDefinition(ele,delegate)处理。
doRegisterBeanDefiniton(root) ->
parseBeanDefinitons(root,delegate) ->
parseDefaultElement(ele,delegate) -> case1:标签是beans -> doRegisterBeanDefinition(ele) ->
-> case2:标签是bean -> processBeanDefinition(ele,delegate) ->
这里root元素的标签也是beans,每个beans标签都对应一个BeanDefinitionParserDelegate实例和一个doRegisterBeanDefinition方法。
跳出迭代后,主要就是标签bean的解析。processBeanDefinition(ele,delegate)是解析bean标签的函数,主要做了两件事:
(1).通过delegate.parseBeanDefinitonElement(ele)解析元素生成BeanDefinitionHolder实例bdHolder;
(2).注册bdHolder,也就是将beanName和beanDefinition写入beanDefinitionMap;
bdHolder包含beanName,beanDefinition,aliasesArray。一般情况下beanName就是<bean>...</bean>里的id;如果id没有值,那beanName就是aliases里的第一个;如果aliases也没有值,那beanName就是bean对应的类的类名。beanDefinition是这里的核心。获得这个beanDefinition的方法是beanDefinitionParserDelegate.parseBeanDefinitonElement(ele,beanName,null)。
- Spring笔记03-Spring解析默认标签
- spring默认标签解析
- spring源码深度解析(笔记二)--默认标签的解析
- Spring源码解析-默认标签的解析
- Spring默认标签解析及注册实现
- 《Spring源码深度解析》学习笔记——默认标签的解析
- 《Spring源码深度解析》阅读笔记5-默认标签的解析之bean标签的解析及注册
- Spring源码解析之默认标签的解析(一)
- Spring学习(3)——默认标签的解析
- Spring自定义标签解析
- spring源码深度解析(笔记三)--自定义标签的解析
- spring源码剖析(二)Spring默认标签解析及注册实现
- Spring源码解析之一 ------ 默认标签的解析注册(IOC的第一步)
- Spring 源码解析 ---- 自定义标签
- Spring自定义标签的解析
- spring解析xml标签过程
- Spring源码解析-自定义标签解析
- Spring源码解析-自定义标签的解析
- 02-Thrift研究
- HDU1058
- Socket套接字
- poj 3061 Subsequence 二分
- ASP.NET Identity V2在多线程中UserManager获取的httpContext.Current始终为null的解决办法
- Spring笔记03-Spring解析默认标签
- 算法面试题之数组中重复的数字
- Android学习系列(29)--App调试的几个命令实践
- Mybatis通过like模糊查询
- JavaScript操作cookie
- JAVA 攻城狮 第二十五天
- bootstrap控制元素右移
- mysql 日期操作 增减天数、时间转换、时间戳
- Linux内核数据结构