2011-06-02 193 views
1

我正在使用基於xml的配置的Spring3。 問題是當IOC容器啓動時,它加載/緩存com.dao.MyDAOFactory類中定義的所有屬性/字段。我想告訴Spring只加載/緩存特定的屬性/字段。Spring 3依賴注入

這個bean聲明如下

<bean id="daoFactory" class="com.dao.MyDAOFactory" ></bean> 

給任何一個能幫助我嗎?

+1

這是什麼意思Spring * caches * fields/properties?所有非原型bean都是在啓動時創建的,並且在bean可訪問之前注入依賴關係。你能澄清一點嗎? – 2011-06-02 11:57:47

+0

實際上,在類com.dao.MyDAOFactory中,有100個用它們的setter和getter定義的類字段。但是我想讓它們中的一些在20左右。當彈簧容器啓動時它會加載全部100.我想限制不加載全部的彈簧。 – Zeeshan 2011-06-02 12:02:21

+0

是什麼讓你相信Spring正在緩存這些屬性? – 2011-06-02 12:51:34

回答

1

您可以使用lazy-init attribute推遲您的bean的加載,但最終會加載所有的加載。

請記住,如果一個非懶惰的singleton bean依賴於一個或多個懶惰的bean,那麼懶惰的bean將在啓動時加載。

+0

爲此,我需要聲明XML中的所有bean? – Zeeshan 2011-06-02 13:15:15

+0

如果你想要所有的bean都是懶惰的,只需將屬性添加到beans標籤中:'。如果您只想添加到選定的bean,則必須添加到每個bean定義。 – iruediger 2011-06-02 13:18:04

+0

非常感謝。這工作.... – Zeeshan 2011-06-02 13:24:16