Spring源码:
配置文件的加载过程
这个解析过程是由documentLoader完成的,从String[] -string-Resource[]- resource,最终开始将resource读取成一个document文档,根据文档的节点信息封装成一个个的BeanDefinition对象
配置文件读取到底读取的啥?
读取配置文件,解析出bean定义信息 、bean名称、bean别名通过三个集合放在AbstractApplicationContext中
其中aliasMap放在SimpleAliasRegistry中
beanDefinitionMap、beanDefinitionNames放在DefaultListableBeanFactory中
配置文件的读取:
/**
* 从别名映射到规范名称
* Map from alias to canonical name.
*/
private final Map<String, String> aliasMap = new ConcurrentHashMap<>(16);
/**
*Map of bean definition objects, keyed by bean name.
*存放bean名称和bean定义信息,键值对
*/
private final Map<String, BeanDefinition> beanDefinitionMap = new ConcurrentHashMap<>(256);
/**
*List of bean definition names, in registration order.
* 存放bean的名称
*/
private volatile List<String> beanDefinitionNames = new ArrayList<>(256);