Spring BeanFactory与ApplicationContext的区别

使用BeanFactory从xml配置文件加载bean:

Java code
  
import org.springframework.beans.factory.xml.XmlBeanFactory; import org.springframework.core.io.FileSystemResource; public class XmlConfigWithBeanFactory { public static void main(String[] args) { XmlBeanFactory factory = new XmlBeanFactory( new FileSystemResource( " build/beans.xml " )); } }
  
使用ApplicationConText从xml配置文件加载bean:  
Java code
  
public class XmlConfigWithApplication{ public static void main(String[] args){ ApplicationContext application = new ClassPathXmlApplicationContext(beans.xml " )); application.getBean( " BeanName " ); }}


ApplicationContext和BeanFacotry相比,提供了更多的扩展功能,但其主要区别在于后者是延迟加载,
如果Bean的某一个属性没有注入,BeanFacotry加载后,直至第一次使用调用getBean方法才会抛出异常;
而ApplicationContext则在初始化自身是检验,这样有利于检查所依赖属性是否注入;
所以通常情况下我们选择使用ApplicationContext.

你可能感兴趣的:(spring,初始化)