容器是 Spring 框架的核心。Spring 容器使用 DI(依赖注入)机制管理构成应用的组件(类),所谓 DI,也即是其能够创建相互协作的组件(类)之间的关联(依赖)。

1. 应用上下文(ApplicationContext)

ApplicationContext(应用上下文,org.springframework.context.ApplicationContext 接口)基于 BeanFactory(org.springframework.beans.factory)创建,并提供应用框架级别的服务,比如十分实用的从属性文件解析文本信息以及发布应用事件给感兴趣的监听者。

  • AnnotationConfigApplicationContext
    • 从配置类(XXConfig.java)中加载
  • AnnotationConfigWebApplicationContext
  • ClassPathXmlApplicationContext
    • 类路径
  • FileSystemXmlApplicationContext
    • 文件系统路径
  • XmlWebApplicationContext
ApplicationContext ctx = new 
    AnnotationConfigApplicationContext(
    xx.xx.xx.KnightConfig.class);
ApplicationContext ctx = new 
    FileSystemXmlApplicationContext("C:/knigt.xml");
ApplicationContext  ctx = new ClassPathXmlApplicationContext("knight.xml");
    // class path 类路径下的 knight.xml
    // project_name/src/main/java ⇒ 类路径;
    // 类路径下的 knight.xml 即为:project_name/src/main/java/resources/knight.xml

应用上下文准备就绪之后(ApplicationContext 对象实例化之后),便可以调用上下文的 getBean 方法从 Spring 容器中获取 bean。