Bean初始化
spring的Ioc容器根據(jù)XML配置文件來初始化Bean.需要注意的一點是,ApplicationContext初始化Bean和基
本的BeanFactory有所不同,基本的BeanFactory總是延遲加載Bean,直到第一次調(diào)用getBean("BeanId")方法
請求Bean實例時,BeanFactory才會創(chuàng)建這個Bean,而ApplicationContext在自身初始化時就一次性創(chuàng)建了
所有的Bean,了解這一點是非常重要的,因為ApplicationContext在初始化時就能驗證XML配置文件的正確性.
而使用BeanFactory,直到調(diào)用getBean("BeanId")方法獲取Bean實例時,才可能會發(fā)現(xiàn)配置錯誤而導(dǎo)致拋出
異常.
只有在非常簡單的情況下,使用基本的BeanFactory才可能滿足我們的需求.絕大多時候我們使用
ApplicationContext是最佳的選擇.在啟動的時候就能檢測配置文件的錯誤,這比使用基本的BeanFactory
在運行一段時間后調(diào)用getBean("BeanId")拋出異常要好得多.并且,延遲加載會帶來性能上的損失.
ApplicationContext由于在啟動時需要一次性別實例化所有的Bean,如果定義的Bean比較多,則啟動的時間
會比較長.