Spring之BeanFactory與ApplicationConText區別

一任天然發表於2008-09-04

使用BeanFactory從xml配置檔案載入bean: 

  1. import org.springframework.beans.factory.xml.XmlBeanFactory;
  2. import org.springframework.core.io.FileSystemResource;
  3. public class XmlConfigWithBeanFactory {
  4.     public static void main(String[] args) {
  5.         XmlBeanFactory factory = new XmlBeanFactory(new FileSystemResource(
  6.                 "build/beans.xml"));
  7.     }
  8. } 

使用ApplicationConText從xml配置檔案載入bean:

 

  1. public class XmlConfigWithApplication{
  2.     public static void main(String[] args){
  3.         ApplicationContext application = new ClassPathXmlApplicationContext(beans.xml"));
  4.          application.getBean("BeanName");
  5.     }
  6. }

ApplicationContext和BeanFacotry相比,提供了更多的擴充套件功能,但其主要區別在於後者是延遲載入,如果Bean的某一個屬性沒有注入,BeanFacotry載入後,直至第一次使用呼叫getBean方法才會丟擲異常;而ApplicationContext則在初始化自身時檢驗,這樣有利於檢查所依賴屬性是否注入;所以通常情況下我們選擇使用ApplicationContext.

相關文章