Spring 3-Bean的解析
一、Bean的解析(以XmlBeanFactory为例来说明)1、构造级联容器
AbstractBeanFactory.java
?2、生成XmlBeanDefinitionReaderXmlBeanFactory.java
?XmlBeanDefinitionReader.java
注册到容器中
BeanDefinitionReaderUtils.javapublic static void registerBeanDefinition(BeanDefinitionHolder definitionHolder, BeanDefinitionRegistry registry)throws BeanDefinitionStoreException {// 注册bean信息String beanName = definitionHolder.getBeanName();registry.registerBeanDefinition(beanName, definitionHolder.getBeanDefinition());// 注册别名String[] aliases = definitionHolder.getAliases();if (aliases != null) {for (int i = 0; i < aliases.length; i++) {registry.registerAlias(beanName, aliases[i]);}}}?4、小结其实,这里看着这么多代码,但其作用只有一个,那就是解析XML里的每个元素,获取Spring规范定义的bean的属性值,然后生成BeanDefinition实例;上面提到一点,解析bean的繁锁工作全部由BeanDefinitionParseDelegate类来完成,从这一点也可以看出,Spring中类的职责分工相当的明确;