BeanFactory 和 ApplicationContext 有什么區別?

1、BeanFactory 接口提供了一個先進的配置機制,使得任何類型的對象的配置成為可能。ApplicationContex接口對BeanFactory(是一個子接口)進行了擴展,在BeanFactory的基礎上添加了其他功能,比如與Spring的AOP更容易集成,也提供了處理message resource的機制(用于國際化)、事件傳播以及應用層的特別配置,比如針對Web應用的WebApplicationContext。org.springframework.beans.factory.BeanFactory
是Spring IoC容器的具體實現,用來包裝和管理前面提到的各種bean。BeanFactory接口是Spring IoC 容器的核心接口。

2、BeanFactory 可以理解為含有bean集合的工廠類。BeanFactory 包含了種bean的定義,以便在接收到客戶端請求時將對應的bean實例化。BeanFactory還能在實例化對象的時生成協作類之間的關系。此舉將bean自身與bean客戶端的配置中解放出來。BeanFactory還包含了bean生命周期的控制,調用客戶端的初始化方法(initialization methods)和銷毀方法(destruction methods)。
從表面上看,applicationcontext如同beanfactory一樣具有bean定義、bean關聯關系的設置,根據請求分發bean的功能。但applicationcontext在此基礎上還提供了其他的功能。

1. 提供了支持國際化的文本消息

2. 統一的資源文件讀取方式

3. 已在監聽器中注冊的bean的事件

以下是三種較常見的 ApplicationContext 實現方式:
1、ClassPathXmlApplicationContext:從classpath的XML配置文件中讀取上下文,并生成上下文定義。應用程序上下文從程序環境變量中取得。
2、FileSystemXmlApplicationContext :由文件系統中的XML配置文件讀取上下文。

ApplicationContext context = new ClassPathXmlApplicationContext(“bean.xml”);
ApplicationContext context = new FileSystemXmlApplicationContext(“bean.xml”);

3、XmlWebApplicationContext:由Web應用的XML文件讀取上下文。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,991評論 19 139
  • Spring Boot 參考指南 介紹 轉載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,971評論 6 342
  • Spring容器高層視圖 Spring 啟動時讀取應用程序提供的Bean配置信息,并在Spring容器中生成一份相...
    Theriseof閱讀 2,853評論 1 24
  • 想出去走走,那么,機票貴,出遠門,住宿難,飲食煩,都是阻礙前行的理由,即便訂票前突然斷網了一只蚊子突然咬你了都有可...
    狂奔工作室cool閱讀 327評論 8 1
  • 一本很熱銷的書,買了一直沒看。這兩天大姨媽駕臨,躺著休息,拿來讀,一氣讀完。 沒想到這書沖擊歷很大。尤其作者在書中...
    Ebony_18a3閱讀 335評論 0 0