spring bean parent屬性詳解

2021-06-17 23:51:19 字數 1075 閱讀 4510

必要條件:子bean必須與父bean保持相容,也就是說子bean中必須有父bean定義的所有屬性。

父bean必須是抽象bean或者定義lazy-init=true也就是不讓bean工廠例項化該bean

注:好多人將parent指向的類說是子類繼承了父類,其實說法不正確,正確的說法應該是子bean父bean而不是子類父類,因為如果子bean指定的類已經繼承了其他的類,那麼在這裡一樣可以有乙個父bean,(如果真像大家說的那樣那不成多重繼承了嗎)

如果父bean有class屬性,而子bean沒有,那麼子bean的class就和父bean相同 例如:

...

//********(1)

propagation_required

propagation_required,readonly

//******(2)

為了解決**的低重用,我在testproxy裡沒有定義target屬性,targe屬性t的定義放在了外面乙個bean裡,這個bean繼承了testproxy(parent),這樣bean中parent中已注入的屬性不需要再注入,在子bean中只需要注入還沒有注入的屬性即可!注意:也只能注入
transactionproxyfactorybean
中有的屬性,重複了覆蓋,但是不能注入其他任何屬性

如果父bean沒有定義class屬性,子bean必須定義class屬性,這時候父bean實際上僅僅是乙個純模版或抽象bean,僅僅充當子定義的父定義。若要嘗

parent

1override

試單獨使用這樣的parent bean(比如將它作為其他bean的ref屬性而引用,或者直接使用這個parent bean的id呼叫getbean()方法),將會導致乙個錯誤。這個父bean的功能也就是為了減少配置的書寫而採用的,舉例如下,如果有n個bean都要配置m個相同的屬性,如果不採用父bean概念,將要配置這m個屬性n次,採用父bean方式將這共同的m個屬性配置在父bean中,而在這n個bean中都增加乙個parent屬性 指向那個bean就可以。(這裡的m個屬性也要滿足必要條件,都在子bean對應的類中定義)

spring bean parent屬性詳解

必要條件 1 子bean必須與父bean保持相容,也就是說子bean中必須有父bean定義的所有屬性。2 父bean必須是抽象bean或者定義lazy init true也就是不讓bean工廠例項化該bean 注 好多人將parent指向的類說是子類繼承了父類,其實說法不正確,正確的說法應該是子be...

spring bean parent屬性詳解

必要條件 1 子bean必須與父bean保持相容,也就是說子bean中必須有父bean定義的所有屬性。2 父bean必須是抽象bean或者定義lazy init true也就是不讓bean工廠例項化該bean 注 好多人將parent指向的類說是子類繼承了父類,其實說法不正確,正確的說法應該是子be...

spring bean parent屬性詳解

必要條件 1 子bean必須與父bean保持相容,也就是說子bean中必須有父bean定義的所有屬性。2 父bean必須是抽象bean或者定義lazy init true也就是不讓bean工廠例項化該bean 注 好多人將parent指向的類說是子類繼承了父類,其實說法不正確,正確的說法應該是子be...