BeanFactory 和 ApplicationContext 有什麼區別

BeanFactory 可以理解為含有 bean 集合的工廠類。 BeanFactory 包含了種 bean 的定義,以便在接收到客戶端請求時將對應的 bean 實例化。

BeanFactory 還能在實例化對象的時生成協作類之間的關係。此舉將 bean 自身與 bean 客戶端的配置中解放出來。 BeanFactory 還包含 了 bean 生命週期的控制,調用客戶端的初始化方法(initialization methods)和銷燬方法(destruction methods)。

從表面上看, application context 如同 bean factory 一樣具有 bean 定義、 bean 關聯關係的設
置,根據請求分發 bean 的功能。但 applicationcontext 在此基礎上還提供了其他的功能。

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

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

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


以下是三種較常見的 ApplicationContext 實現方式:

1、 ClassPathXmlApplicationContext:從 classpath 的 XML 配置文件中讀取上下文,並生成上
下文定義。

應用程序上下文從程序環境變量中

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

2、 FileSystemXmlApplicationContext :由文件系統中的 XML 配置文件讀取上下文。ApplicationContext context = new FileSystemXmlApplicationContext(“bean.xml”);

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

4.AnnotationConfigApplicationContext(基於 Java 配置啟動容器)


BeanFactory 和 ApplicationContext 有什麼區別


分享到:


相關文章: