Spring 框架作为 Java 生态中最经典的开源项目之一,其核心魅力在于 IoC(控制反转)和 DI(依赖注入)的优雅实现。本系列将深入 Spring 源码,带你从零到一解剖其底层逻辑。本篇作为开篇,我们将聚焦 IoC 容器的初始化过程,以 ClassPathXmlApplicationContext
为例,逐步揭开 Spring 启动的神秘面纱。
1. 为什么从 IoC 容器开始?
IoC 容器是 Spring 的心脏,负责管理 Bean 的生命周期、依赖注入和配置加载。无论是传统的 XML 配置,还是现代的注解驱动,IoC 容器的初始化都是 Spring 应用的起点。理解它的实现,不仅能让你掌握 Spring 的核心思想,还能为后续分析 AOP、事务等模块打下基础。
2. 切入点:ClassPathXmlApplicationContext
我们以经典的 ClassPathXmlApplicationContext
为例,这是一个基于 XML 配置的应用上下文。它的构造过程是 IoC 容器初始化的入口。让我们从代码入手:
public class SpringDemo {
public static void main(String[] args) {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
Object bean = context.getBean("myBean");
System.out.println(bea