spring源码学习(二)初始化ioc容器
1、在创建ioc容器前的准备工作
准备刷新前的工作
1)、记录启动时间
2)、设置容器关闭状态
3)、设置容器活跃状态
4)、初始化属性源(本类是空实现,在子类中比如staticWebApplicationContext中会对servlet资源进行初始化)
5)、验证必须的属性
我们可以自己实现一个子类设置必要的环境属性,必须的环境属性就是在这里验证的,当环境中没有abc属性上就会报错
2、准备工作完成之后,开始正式创建容器了
1)、创建之前如果存在容器了就需要销毁原来的容器,保证每次刷新得到都是新的容器(保证当前上下文只有一个ioc容器,而不是指的整个应用只有一个beanfactory)
2)、创建新的beanfactory,在父类中AbstractAutowireCapableBeanFactory会忽略三个aware接口,而这三个接口在bean的初始化的时候执行invokeAwareMethod时会进行设置
3)、自定义beanfactory;实际上这里边就干了两件事情设置是否允许覆盖beanDefinition以及是否允许循环依赖
分类:
Spring
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!