Spring 上下文构建源码深度解析:从 ClassPathXmlApplicationContext 到 IOC 容器就绪
Spring 上下文(ApplicationContext)是 IOC 容器的核心载体,负责配置加载、BeanDefinition 管理、Bean 实例化与初始化的全流程。以 ClassPathXmlApplicationContext 为例,其初始化过程围绕 refresh() 方法展开,这是 Spring 最核心的源码链路之一。从 “构造函数初始化→refresh() 全景流程→关键子流程拆解→核心设计思想” 四个维度,彻底讲透上下文构建的每一步。
上下文初始化入口:ClassPathXmlApplicationContext 构造函数
创建 ClassPathXmlApplicationContext 实例时,仅需一行代码,但背后触发了完整的初始化流程:
1 | ApplicationContext context = new ClassPathXmlApplicationContext("spring-lifecycle.xml"); |
构造函数核心逻辑
构造函数的本质是 “初始化配置路径 + 触发上下文刷新”,源码如下(已简化关键逻辑):
1 | // ClassPathXmlApplicationContext 构造函数 |