Spring 的兩個配置容器的講解


    容器,從字面角度很容易理解,就是用來貯藏東西的。從計算機的角度,可粗略地分為Web容器和編程容器。
    Web容器是應用服務器中位於組件和平台之間的接口集合。如WebLogic、Tomcat等。
    編程容器容器是用來存儲和組織其他對象的對象。如Java內部容器類(Map、List等)。
    容器可以管理對象的生命周期、對象與對象之間的依賴關系,您可以使用一個配置文件(通常是XML),在上面定義好對象的名稱、如何產生(Prototype 方式或Singleton 方式)、哪個對象產生之后必須設定成為某個對象的屬性等,在啟動容器之后,所有的對象都可以直接取用,不用編寫任何一行程序代碼來產生對象,或是建立對象與對象之間的依賴關系。這也正是使用Spring框架給我們帶來的好處。

BeanFacotry是spring中比較原始的Factory。它無法支持spring的許多插件,如AOP功能、Web應用等。 ApplicationContext接口,它由BeanFactory接口派生而來,因而提供BeanFactory所有的功能。
ApplicationContext以一種更向面向框架的方式工作以及對上下文進行分層和實現繼承,
ApplicationContext包還提供了以下的功能:
      • MessageSource, 提供國際化的消息訪問 
      • 資源訪問,如URL和文件 
      • 事件傳播 
      • 載入多個(有繼承關系)上下文 ,使得每一個上下文都專注於一個特定的層次,比如應用的 web層  
BeanFactroy采用的是延遲加載形式來注入Bean的,即只有在使用到某個Bean時(調用getBean()),才對該Bean進行加載實例化,這樣,我們就不能發現一些存在的Spring的配置問題。
而ApplicationContext則相反,它是在容器啟動時,一次性創建了所有的Bean。這樣,在容器啟動時,我們就可以發現Spring中存在的配置錯誤。


如何選擇使用容器?

    ApplicationContext包含BeanFactory的所有功能,幾乎所有的應用系統都選擇ApplicationContext而不是BeanFactory。

    只有在資源很少的情況下,才會考慮采用BeanFactory,如在移動設備上等。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM