2012-03-18 63 views
0

我正在學習春天,我有一個關於豆工廠preInstantiateSingletons方法的問題。如果你不調用這個方法,那麼Spring如何延遲加載單例?我正在閱讀Pro Spring 2.5並使用XmlBeanFactory。我認爲Spring在你調用構造函數的地方創建了整個對象圖。春天和prestantiateSingletons

是的,我知道它已經過時......

回答

2

在哪些方面春天延遲加載單身,如果你不調用這個方法?

默認情況下Spring有渴望豆初始化的行爲,但如果你標記豆受lazy-init="true"懶洋洋地初始化或可能與註釋Spring上下文同時加載上下文不會創建一個bean的實例,它會創建當我們實際需要它的時候(當我們試圖從上下文中提取這個bean,或者當這個bean被標記爲依賴於其他bean並且這個bean正在初始化時)

要測試和驗證這個,你可以創建一個bean並將其標記爲延遲初始化,並將另一個bean不進行延遲初始化(默認爲eager),將log語句放在它們的構造函數中,BeanEager的構造函數只要co ntextt被加載,但BeanLazy的構造函數只會在您嘗試執行時調用從上下文中獲取該bean