Spring为我们提供了两种核心容器,分别是BeanFactory与ApplicationContext,下面对两种容器简单介绍
1、BeanFactory
创建BeanFactory实例时,需要提供Spring所管理容器的详细配置信息,这些信息通常采用XML文件形式来管理,其加载配置信息的语法如下:
BeanFactory beanFacory =
new XmlBeanFactory(new FileSystemResource("XML配置文件的位置"));
2、ApplicationContext
ApplicationContext是BeanFactory的子接口,是另一种常用的Spring核心容器。它由org.springframework.context.ApplicationContext接口定义,不仅包含了BeanFactory的所有功能,还添加了对国际化、资源访问、事件传播等方面的支持。创建ApplicationContext接口实例,通常采用如下两种方案:
1)通过ClassPathXmlApplicationContext创建(常用)
ApplicationContext applicationContext =
new ClassPathXmlApplicationContext("Xml配置文件类路径");
2)通过FileSystemXmlApplicationContext创建
ApplicationContext applicationContext =
new FileSystemXmlApplicationContext("Xml配置文件系统路径");
小白提示
BeanFactory与ApplicationContext两种容器都是通过Xml文件配置和加载Bean的。二者的主要区别在于:如果Bean的一个属性没有注入,使用BeanFactory加载后,在第一次调用getBean()方法时会抛出异常。而ApplicationContext在初始化时自检,这样有利于检查所依赖的属性是否注入。因此,在实际开发中,通常优先使用ApplicationContext,而只有在系统资源较少时,才考虑使用BeanFactory