我開始學習Spring文檔。我碰到過parent
屬性的解釋,確實使用parent
兩個bean之間的屬性相當於這些類之間的繼承關係嗎?bean標記的父屬性是否等於Java中的繼承?
如果是這樣,如何執行方法覆蓋?此外,我還看到在某些情況下,在XML配置文件中使用parent
屬性,在bean類中使用extends
關鍵字。是否需要指定兩個彈簧才能實現繼承?
我開始學習Spring文檔。我碰到過parent
屬性的解釋,確實使用parent
兩個bean之間的屬性相當於這些類之間的繼承關係嗎?bean標記的父屬性是否等於Java中的繼承?
如果是這樣,如何執行方法覆蓋?此外,我還看到在某些情況下,在XML配置文件中使用parent
屬性,在bean類中使用extends
關鍵字。是否需要指定兩個彈簧才能實現繼承?
parent
表示configuration inheritance
並沒有涉及到Java繼承。configuration inheritance
節省了大量代碼,因爲您不必重複使用XML代碼。與屬性 Class MyBean {
attrib1
attrib2
attrib3
attrib4
}
說
例如,你有以下豆豆的一個實例說bean1
只需要attrib1
和attrib2
而另一個說bean2
實例需要所有四個屬性。
讓配置這兩個豆
<bean id="bean1" class="MyBean">
<property name="attrib1" value="val1" />
<property name="attrib2" value="val2" />
</bean>
<bean id="bean2" parent="bean1">
<property name="attrib3" value="val3" />
<property name="attrib4" value="val4" />
</bean>
注意bean2
只需要配置attrib3
和attrib4
。另外兩個屬性繼承從bean1
要回答你的問題:
是否需要爲了實現 繼承指定兩個彈簧?
不像前面提到的那樣,這不像java繼承一樣。
感謝您的回覆Santosh.But現在我注意到Deinum提到的下面鏈接中的一點:「子bean定義繼承了構造函數參數值,屬性值和父類的方法覆蓋,並且可以添加新值」。那麼,使用父屬性支持方法重寫? –
正如我所提到的,Spring配置中的'parent'屬性和Java繼承之間沒有聯繫,因此覆蓋了方法。無論該bean是否具有父屬性,配置的bean將擁有所有方法(包括繼承,重寫)。 – Santosh
不......他們彼此沒有關係。
父bean定義可以被認爲是其他bean的模板的一種形式(不必有任何關係)。假設你有3個bean共享/需要一個用戶名/密碼/ url配置,你可以創建一個定義所有這些屬性的父bean。這減少了您的配置工作量(您不必在所有的bean定義中複製屬性)。
http://docs.spring.io/spring/docs/3.2.x/spring-framework-reference/htmlsingle/#beans-child-bean-definitions解釋了這一切。 –