Spring的beanFactory與ApplicationContext區別

來源:互聯網
上載者:User

標籤:中比   建立   不能   url   程式配置   代碼   比較   ica   執行個體化   

BeanFacotry是spring中比較原始的Factory。如XMLBeanFactory就是一種典型的BeanFactory。原始的BeanFactory無法支援spring的許多外掛程式,如AOP功能、Web應用等。 
  ApplicationContext介面,它由BeanFactory介面派生而來,因而提供BeanFactory所有的功能。ApplicationContext以一種更向面向架構的方式工作以及對上下文進行分層和實現繼承,ApplicationContext包還提供了以下的功能: 
  • MessageSource, 提供國際化的訊息訪問  
  • 資源訪問,如URL和檔案  (統一的資源檔讀取方式)

  • 事件傳播 ,有強大的事件機制(Event)  
  • 載入多個(有繼承關係)上下文 ,使得每一個上下文都專註於一個特定的層次,比如應用的web層  

BeanFactroy採用的是消極式載入形式來注入Bean的,即只有在使用到某個Bean時(調用getBean()),才對該Bean進行載入執行個體化,這樣,我們就不能發現一些存在的Spring的配置問題。而ApplicationContext則相反,它是在容器啟動時,一次性建立了所有的Bean。這樣,在容器啟動時,我們就可以發現Spring中存在的配置錯誤。 相對於基本的BeanFactory,ApplicationContext 唯一的不足是佔用記憶體空間。當應用程式配置Bean較多時,程式啟動較慢。

BeanFactory和ApplicationContext都支援BeanPostProcessor、BeanFactoryPostProcessor的使用,但兩者之間的區別是:BeanFactory需要手動註冊,而ApplicationContext則是自動註冊。(Applicationcontext比 beanFactory 加入了一些更好使用的功能。而且 beanFactory 的許多功能需要通過編程實現而 Applicationcontext 可以通過配置實現。比如後處理 bean , Applicationcontext 直接配置在設定檔即可而 beanFactory 這要在代碼中顯示的寫出來才可以被容器識別。 )

Spring的beanFactory與ApplicationContext區別

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.