SpringIOC源码分析总结
大致的加载过程: spring ioc容器的加载,大体上经过以下几个过程: 资源文件定位、解析、注册、实例化 1.资源文件定位:主要发生在ApplicationContext中,由于applicationContext继承于ResourceLoader,所以调用getResource()方法,将外部的资源解析成Resource类 2.解析:主要发生在BeanDefinitionReader中完成,最常用的类是XMLBeanDefiniationReader, ac利用loadBeanDefininiation()方法,负责读取Resource;将Resource的解析交给 XMLbeanDefiniationReader 去处理, 将XML文档解析成w3c的Document文档,BeanDefinitionDocumentReader进一步解析,BeanDefinitionDocumentReader将Document,交给 BeanDefiniationParserDetegate 去处理(装饰),如果是标准的NameSpace文档(import、alias、bean、beans),在内部解析,如果不是标准的文档,会委托合适的NameSpaceHander去处理进行解析,将结果封装到BeanDefiniationHolder