IoC 容器

17 Mar 2025 | 阅读 2 分钟

IoC 容器负责实例化、配置和组装对象。 IoC 容器从 XML 文件中获取信息并据此工作。 IoC 容器执行的主要任务是

  • 实例化应用程序类
  • 配置对象
  • 组装对象之间的依赖关系

IoC 容器有两种类型。 它们是

  1. BeanFactory
  2. ApplicationContext

BeanFactory 和 ApplicationContext 之间的区别

org.springframework.beans.factory.BeanFactory 和 org.springframework.context.ApplicationContext 接口充当 IoC 容器。 ApplicationContext 接口构建在 BeanFactory 接口之上。 它添加了一些 BeanFactory 之外的额外功能,例如与 Spring 的 AOP 简单集成、消息资源处理 (用于 I18N)、事件传播、特定于应用程序层的上下文(例如 WebApplicationContext)用于 Web 应用程序。 因此,最好使用 ApplicationContext 而不是 BeanFactory。

使用 BeanFactory

XmlBeanFactory 是 BeanFactory 接口的实现类。 要使用 BeanFactory,我们需要创建 XmlBeanFactory 类的实例,如下所示

XmlBeanFactory 类的构造函数接收 Resource 对象,因此我们需要传递 resource 对象来创建 BeanFactory 的对象。


使用 ApplicationContext

ClassPathXmlApplicationContext 类是 ApplicationContext 接口的实现类。 我们需要实例化 ClassPathXmlApplicationContext 类以使用 ApplicationContext,如下所示

ClassPathXmlApplicationContext 类的构造函数接收字符串,因此我们可以传递 xml 文件的名称来创建 ApplicationContext 的实例。