spring源码 refresh

 

 1 设置容器启动时间

 

 

 2 设置容器关闭标志位

 

 

 3 容器的激活标志位

 

 

 4 记录日志

 

5 初始化属性资源 (空  自行扩展)

 

 

 

这里必须设置系统属性中存在的值  否则会报错

 

 

 

 

 6 获取环境对象 并加载系统的属性值到 Environment对象中

 

 

 7 刷新之前的程序监听器和事件集合(这里为空  但是在springboot中有14个监听器 被放入集合中)

 

 

 

 -------------------------------------------------------------------

准备刷新的容器bean工厂

 

 

 在我们启动spring之前有可能已经启动了spring了   所以需要刷新  把之前存在的beanFactory 销毁关闭 然后重新创建一个新的 defaultListAbleBeanFactory

1 设置序列化id

2 设置相关属性值

3 对xml文件读取并解析(加载bean定义信息)

 

 

这里的定制化BeanFactory 可以重写 父类方法  设置属性

 

 

 

 

 

 

 

 !!!重要

beanFactory当成工厂类 参数传入  newXmlBeanDefinitionReader  专门解析xml文件

1创建XmlBeanDefiniationReader

 

 

 2 设置环境属性 

3 设置资源加载器 

4设置实体解析器  simpleApiXml   当无法连网情况下  实现该接口 可以加载本地xml文件格式

 

 

在new 的时候 调用了toString方法 里面调用了getScheMappings()

 

 

 

5

 

 

 

6

 

 

 

 

 


 

 

 

 

 

 

 

-----------------------------------------------------------------------

 

posted @   花心大萝卜li  阅读(51)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
点击右上角即可分享
微信分享提示