IoC容器负责实例化,配置和组装对象。 IoC容器从XML文件获取信息并相应地工作。 IoC容器执行的主要任务是:
实例化应用程序类 配置对象 组装对象之间的依赖关系
有两种类型的IoC容器。它们是:
BeanFactory ApplicationContext
org.springframework.beans.factory。 BeanFactory 和org.springframework.context。 ApplicationContext 接口充当IoC容器。 ApplicationContext接口建立在BeanFactory接口的顶部。它比BeanFactory增加了一些额外的功能,例如与Spring的AOP的简单集成,消息资源处理(用于I18N),事件传播,Web应用程序的特定于应用程序层的上下文(例如WebApplicationContext)。因此,使用ApplicationContext比使用BeanFactory更好。
XmlBeanFactory是BeanFactory接口的实现类。要使用BeanFactory,我们需要创建XmlBeanFactory类的实例,如下所示:
Resource resource=new ClassPathResource("applicationContext.xml"); BeanFactory factory=new XmlBeanFactory(resource);
XmlBeanFactory类的构造函数接收Resource对象,因此我们需要传递该资源对象来创建BeanFactory对象。
使用ApplicationContext
ClassPathXmlApplicationContext类是ApplicationContext接口的实现类。我们需要实例化ClassPathXmlApplicationContext类以使用ApplicationContext,如下所示:
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
ClassPathXmlApplicationContext类的构造函数接收字符串,因此我们可以传递xml文件的名称来创建ApplicationContext的实例。