Spring之BeanFactory与ApplicationConText区别

Spring之BeanFactory与ApplicationConText区别

     使用BeanFactory从xml配置文件加载bean:
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:
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之BeanFactory与ApplicationConText区别)