spring 允許繼承 bean 的配置, 被繼承的 bean 稱為父 bean. 繼承這個父 bean 的 bean 稱為子 bean
子 bean 從父 bean 中繼承配置, 包括 bean 的屬性配置
子 bean 也可以覆蓋從父 bean 繼承過來的配置
父 bean 可以作為配置模板, 也可以作為 bean 例項. 若只想把父 bean 作為模板, 可以設定的abstract 屬性為 true, 這樣 spring 將不會例項化這個 bean
並不是元素裡的所有屬性都會被繼承. 比如: autowire, abstract 等.
也可以忽略父 bean 的 class 屬性, 讓子 bean 指定自己的類, 而共享相同的屬性配置. 但此時 abstract 必須設為 true
id="address"
class="com.web.autowire.address"
p:city="beijing"
p:street="huilongguan"
abstract="true" >
bean>
id="address2"
p:street="wudaokou"
parent="address"
p:city="beijing^">
bean>
spring 允許使用者通過 depends-on 屬性設定 bean 前置依賴的bean,前置依賴的 bean 會在本 bean 例項化之前建立好。
如果前置依賴於多個 bean,則可以通過逗號,空格或的方式配置 bean 的名稱。
例項化person時,要求必須有乙個關聯 car ;若無,則出錯 !!!
新增 car 配置
id="car"
class="com.web.autowire.car"
p:brand="audi"
p:price="500000.0">
bean>
id="person"
class="com.web.autowire.person"
p:name="audi"
p:address-ref="address2"
depends-on="car">
bean>
result as follows :
person [address=address [city=beijing^, street=wudaokou],
car=null, name=audi]
ps : 如上所示,person的car屬性值為null。即表明設定了依賴屬性,只是在例項化當前bean作檢查,並不代表,同時為當前person bean中同名同型別屬性 car 賦值 !!!
如下,為person bean car屬性賦值:
id="person"
class="com.web.autowire.person"
p:name="audi"
p:address-ref="address2"
depends-on="car">
name="car"
ref="car">
property>
bean>
result as follows :
car
[brand=audi, price=5000.0]
person
[address=address [city=beijing^, street=wudaokou],
car=car [brand=audi, price=5000.0], name=audi]
正確結果 !!! spring bean之間的關係 繼承和依賴
bean之間的關係 繼承和依賴 看下面的配置檔案,兩個bean屬性除了street不一樣外,其餘的都是一樣的。繼承 所以可以用下面的方式繼承。spring允許繼承bean的配置,被繼承的bean稱為父bean,繼承這個父bean的bean稱為子bean 子bean從父bean中繼承配置,包括bean...
Spring bean配置繼承
在 spring,繼承是用為支援bean設定乙個 bean 來分享共同的值,屬性或配置。乙個子 bean 或繼承的bean可以繼承其父 bean 的配置,屬性和一些屬性。另外,子 bean 允許覆蓋繼承的值。請參見下面的完整的例子來告訴你如何配置 bean 繼承在 spring 中工作。packag...
Spring bean配置繼承
在spring中,bean配置支援繼承,以使bean共享公共值,屬性或配置。子bean或繼承的bean可以繼承其父bean的配置,屬性和某些屬性。另外,允許子bean覆蓋繼承的值。請參閱以下完整示例,向您展示bean配置繼承如何在spring中工作。package com.mkyong.common...