Spring bean 繼承與依賴

2021-07-25 06:39:40 字數 2248 閱讀 2540

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...