阅读背景:

【Spring源码】IOC实现-默认标签解析

来源:互联网 

(一)bean

1.解析出配置文件的各种属性(元素解析,信息提取)

protected void processBeanDefinition(Element ele, BeanDefinitionParserDelegate delegate) {
   // 元素解析,得到bdHolder (包括配置文件中配置的各种属性,例如class、name、id、alias)
   BeanDefinitionHolder bdHolder = delegate.parseBeanDefinitionElement(ele);
   // 如果bdHolder不为空,若存在默许标签的子节点下再有自定义属性,须要再次对自定义标签进行解析
   if (bdHolder != null) {
      bdHolder = delegate.decorateBeanDefinitionIfRequired(ele, bdHolder);
      try {
         // 解析完成后,对解析后的bdHolder 进行注册
         BeanDefinitionReaderUtils.registerBeanDefinition(bdHolder, getReaderContext().getRegistry());
      }
      catch (BeanDefinitionStoreException ex) {
         getReaderContext().error("Failed to register bean definition with name "" + bdHolder.getBeanName() + """, ele, ex);
      }
      // 发出响应事件,通知相干的监听器,这个bean已加载完成了
      getReaderContext().fireComponentRegistered(new BeanComponentDefinition(bdHolder));
   }
}protected voi



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: