spring bean 标签的解析和注册
2017-06-11 21:15
393 查看
spring bean 标签的解析和注册:
(1)委托BeanDefinitionParserDelegate的parseBeanDefinitionElement方法进行元素解析,返回BeanDefinitionHolder类型的实例bdHolder,经过这个方法后,bdHolder已经包括含有配置文件中的id、class、name、aliias等属性了;
(2)当返回的bdHolder 不为空的情况下,若存在默认标签的子节点下还有自定义属性,还需要对自定义的标签进行解析;
(3)解析完成后,需要通过BeanDefinitionReaderUtils的registerBeanDefinition方法对解析后的bdHolder进行注册;
(4)最后发出相应事件,通知相关的监听器。
委托BeanDefinitionParserDelegate的parseBeanDefinitionElement方法进行元素解析
protected void processBeanDefinition(Element ele, BeanDefinitionParserDelegate delegate) { BeanDefinitionHolder bdHolder = delegate.parseBeanDefinitionElement(ele); if (bdHolder != null) { bdHolder = delegate.decorateBeanDefinitionIfRequired(ele, bdHolder); try { // Register the final decorated instance. BeanDefinitionReaderUtils.registerBeanDefinition(bdHolder, getReaderContext().getRegistry()); } catch (BeanDefinitionStoreException ex) { getReaderContext().error("Failed to register bean definition with name '" + bdHolder.getBeanName() + "'", ele, ex); } // Send registration event. getReaderContext().fireComponentRegistered(new BeanComponentDefinition(bdHolder)); } }
(1)委托BeanDefinitionParserDelegate的parseBeanDefinitionElement方法进行元素解析,返回BeanDefinitionHolder类型的实例bdHolder,经过这个方法后,bdHolder已经包括含有配置文件中的id、class、name、aliias等属性了;
(2)当返回的bdHolder 不为空的情况下,若存在默认标签的子节点下还有自定义属性,还需要对自定义的标签进行解析;
(3)解析完成后,需要通过BeanDefinitionReaderUtils的registerBeanDefinition方法对解析后的bdHolder进行注册;
(4)最后发出相应事件,通知相关的监听器。
委托BeanDefinitionParserDelegate的parseBeanDefinitionElement方法进行元素解析
delegate.parseBeanDefinitionElement(ele);
相关文章推荐
- 死磕Spring系列之二,bean标签的解析和BeanDefinition的注册
- 在自定义标签子类获取Spring中注册的bean
- spring 3源码解析之如何解析"import", "alias", "bean"标签
- spring源码(6)bean标签其他子标签的解析
- Spring ConfigurationClassPostProcessor Bean解析及自注册过程
- Spring解密之XML解析与Bean注册示例详解
- spring源码剖析(二)Spring默认标签解析及注册实现
- Spring默认标签解析及注册实现
- Spring bean 标签加载、解析过程分析
- Spring源码解析之一 ------ 默认标签的解析注册(IOC的第一步)
- 【死磕 Spring】—– IOC 之解析Bean:解析 import 标签
- bean标签的解析及注册(二)解析BeanDefinition
- spring配置文件中非bean标签的原理解析
- bean标签的解析及注册(四)对alias,import,beans标签的处理
- Spring源码-IOC容器(二)-Bean的定位解析注册
- Spring源码学习IOC(4):IoC容器解析Bean定义资源并注册解析后的Bean
- bean标签的解析及注册(三)AbstractBeanDefinition属性
- 《Spring源码深度解析》阅读笔记5-默认标签的解析之bean标签的解析及注册
- spring源码分析(2)——Bean 定义的解析与Bean的注册
- Spring解密 - XML解析 与 Bean注册