Spring 最为核心的理念是 IoC(控制反转)和 AOP(面向切面编程),其中 IoC 是 Spring 的基础。本文我们将要讨论的是 Spring 的 IoC 容器,Spring IoC 容器可以容纳我们所开发的各种 Bean,并且我们可以通过描述获取各种发布在 Spring IoC 容器里的 Bean。Spring IoC容器的设计 Spring IoC 容器的设计主要是基于 BeanFactory 和 ApplicationContext 两个接口,其中 ApplicationContext 是 BeanFactory 的子接口之一,换句话说 BeanFactory 是 Spring IoC 容器所定义的最底层接口,而 ApplicationContext 是其高级接口之一,并且对 BeanFactory 功能做了许多有用的扩展,所以在绝大部分的工作场景下,都会使用 ApplicationContext 作为 Spring IoC 容器。下图展示了 Spring 相关的 IoC 容器接口的主要设计。Spring IoC 容器接口的设计从这张设计图中我们可以看到 Be