加载容器创建resource对象
首先加载一个spring的容器beanfactory,beanfactory的构造方法会创建一个实现了resource接口实例对象。resource对象通过setconfiguration()方法设置spring配置文件位置。resource对象有三种实现
分别是fileresource,url resource,classpathresource。分别获取文件,网络资源,项目路径下资源。
resource对象加载完成后,通过一个super关键字创建容器。如果有父类容器,会使用父类容器。否则新建一个容器。
提取验证模式
容器创建完成后,开始加载配置文件。beanfactory通过一个getinputstream方法拿到配置文件的输入流。在加载之前,需要验证xml的正确性和验证模式。通过解析配置的头标签。采用DTD或者xsd模式
(DTD使用其他规范或xsd(xml语法))如果不是DTD就使用xsd。
提取信息
将配置文件的信息转化为document对象。document对象负责将类信息转化为spring的特殊结构beandefintion.beandefination会保存bean的属性,是否懒加载,是否单例,是否抽象类,是否私有类等
注册
将收集到的所有bean存到一个currenthashmap中,用beanname做key,beandefintion作为value。 如果有相同的key值,并且spring不允许重名。就抛出异常。否则覆盖原来的对象
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。