spring源码 简介

 

 

 1 调用父类的构造方法 创建对象和属性的赋值操作

 

 

 1 设置配置文件属性值(解析配置文件名称${})

---

 

 1 设置启动容器时间

2设置活跃状态为true

3设置关闭状态为false

4获取env对象 加载当前系统属性值到env中(environment)

5准备监听器和事件集合对象 默认为空

---

1 判断容器中是否含有beanFactory对象  如果有 销毁并关闭

2 创建defultListAblebeanFactory

3 设置序列化id

4 定制化beanFactroy 设置相关属性  包括bean信息是否允许覆盖 和 循环依赖

5 加载bean定义信息

5.1 xmlBeanDefiniationReader 来解析xml 中bean信息文件

5.2 设置环境对象

 

5.3 设置资源加载器xmlClassPathApplicationContext

 

 

5.4设置实体类解析器


当我们在解析xml 文件中 往往头部会出现xsd格式引入路径,而当我们在没有网络的情况下 也能正常的解析xml 文件 这就是因为EntityResolver 这个接口的存在 beanDtdResolver 和 SchemaResolver 都实现了该接口 目的就是为接在没有网络情况下 加载本地的配置文件

标签上面的引用可以转换为本地的路径

5.5 初始化当前reader对象 是否对配置文件进行验证(适配器模式)

 

 

 5.6 加载beanDefinition

 

 

 5.6.1  以上都设置号了beanDefinitionReader 设置了处理器 环境对象 设置文件验证模式  接下来需要读取xml配置文件获取配置文件位置  进行解析  这里是判断 是以什么方式获取文件位置  因为之前我们在调用父类构造方法的时候  后面设置了配置文件的Locations  这里自然是第二个方法  

 

这里传入的是以配置文件路径为数组为参数的loadBeanDefinitions

 

 

 

将字符串转换成Resource对象

 

 

 

 

 Sting[]->Sting-Resource[]->resource

读取配置文件

 

解析

 

 

posted @ 2022-08-28 20:12  花心大萝卜li  阅读(39)  评论(0编辑  收藏  举报