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
读取配置文件

解析


浙公网安备 33010602011771号