Spring框架中Application context和BeanFactory的區別


Spring框架提供兩個IOC容器來管理、配置和操作bean。一個是BeanFactory,另一個是Application Context。

Application context介面擴充套件了BeanFactory,以增強BeanFactory的功能。

在新的Spring版本中,BeanFactory被ApplicationContext取代。但是,BeanFactory仍然存在,用於向後相容。

Spring 2.0及以上版本使用BeanPostProcessor擴充套件點(一個介面,提供一些回撥方法,我們可以實現這些方法來定製例項化邏輯、依賴解析邏輯等)。因此,如果您使用的是BeanFactory,則某些功能(例如AOP和事務)在不進行額外配置的情況下將無法工作。

序號關鍵點BeanFactoryApplication Context
1
實現
XMLBeanFactory實現了BeanFactory
FileSystemXmlApplicationContext、ClassPathXmlApplicationContext和AnnotationConfigWebApplicationContext實現了ApplicationContext。

此外,ApplicationContext擴充套件了BeanFactory
2
註解


3
例項化
當呼叫getBean()方法時,BeanFactory例項化bean。
Application Context在容器啟動時例項化bean。
4
事件釋出
BeanFactory沒有向bean推送事件的能力
Application Context能夠向bean推送事件。
5
載入機制
延遲載入
積極載入

更新於:2019年11月18日

4K+瀏覽量

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.