Spring框架中Application context和BeanFactory的區別
Spring框架提供兩個IOC容器來管理、配置和操作bean。一個是BeanFactory,另一個是Application Context。
Application context介面擴充套件了BeanFactory,以增強BeanFactory的功能。
在新的Spring版本中,BeanFactory被ApplicationContext取代。但是,BeanFactory仍然存在,用於向後相容。
Spring 2.0及以上版本使用BeanPostProcessor擴充套件點(一個介面,提供一些回撥方法,我們可以實現這些方法來定製例項化邏輯、依賴解析邏輯等)。因此,如果您使用的是BeanFactory,則某些功能(例如AOP和事務)在不進行額外配置的情況下將無法工作。
| 序號 | 關鍵點 | BeanFactory | Application 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 | 載入機制 | 延遲載入 | 積極載入 |
廣告
資料結構
網路
關係資料庫管理系統(RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP