spring解析xml生成BeanDefinition的进程
spring解析xml生成BeanDefinition的过程??spring解析xml生成BeanDefinition对象的过程主要涉及到XmlBeanDe
spring解析xml生成BeanDefinition的过程
?
?spring解析xml生成BeanDefinition对象的过程主要涉及到XmlBeanDefinitionReader,DocumentLoader,DefaultBeanDefinitionDocumentReader,BeanDefinitionParserDelegate,DefaultListableBeanFactory这几个类,几个类的职责分别是:1.?XmlBeanDefinitionReader根据xml的文件路径生成InputStream对象,进而得到InputStream的xml的包装类InputSource对象.2.?DocumentLoader解析InputSource得到Document对象.3.?DefaultBeanDefinitionDocumentReader类委托BeanDefinitionParserDelegate类解析Document对象生成BeanDefinition对象,BeanDefinition对象中包含xml中配置的bean的元信息.4.生成的BeanDefinition对象最终都会注册到DefaultListableBeanFactory,供后续生成bean对象使用.
??
? ? 在调用getBean(String name)方法时,会将name转换为id,具体代码如下:
? ? ?
public String canonicalName(String name) {String canonicalName = name;// Handle aliasing.String resolvedName = null;do {resolvedName = (String) this.aliasMap.get(canonicalName);if (resolvedName != null) {canonicalName = resolvedName;}}while (resolvedName != null);return canonicalName;}}
?
?
?