Spring bean配置繼承

2021-10-06 19:59:24 字數 1703 閱讀 8114

在spring中,bean配置支援繼承,以使bean共享公共值,屬性或配置。

子bean或繼承的bean可以繼承其父bean的配置,屬性和某些屬性。 另外,允許子bean覆蓋繼承的值。

請參閱以下完整示例,向您展示bean配置繼承如何在spring中工作。

package com.mkyong.common;

public class customer

bean配置檔案

上面是乙個'basecustomermalaysia'bean,包含國家屬性的'malaysia'值,並且'customerbean'bean從其父級('basecustomermalaysia')繼承了該值。

執行

package com.mkyong.common;

}

輸出

customer [type=1, action=buy, country=malaysia]
「 customerbean」 bean剛剛從其父級(「 basecustomermalaysia」)繼承了country屬性。

在上面的示例中,「 basecustomermalaysia」仍然可以例項化,例如,

customer cust = (customer)context.getbean("basecustomermalaysia");
如果要將此基本bean作為模板而不允許其他人例項化它,則可以在元素中新增乙個'abstract'屬性。 例如

現在,「 basecustomermalaysia」 bean是純模板,bean僅可以繼承它,如果嘗試例項化它,則會遇到以下錯誤訊息。

customer cust = (customer)context.getbean("basecustomermalaysia");
org.springframework.beans.factory.beanisabstractexception: 

error creating bean with name 'basecustomermalaysia':

bean definition is abstract

實際上,父bean不必定義類屬性,通常,您可能只需要乙個公共屬性即可共享。 這是乙個例子

在這種情況下,「 basecustomermalaysia」 bean是純模板,只能共享其「 country」屬性。

但是,仍然可以通過在子bean中指定新值來覆蓋繼承的值。 看這個例子

「 customerbean」 bean會覆蓋父級(「 basecustomermalaysia」)國家/地區屬性,從「馬來西亞」到「日本」。

customer [country=japan, action=buy, type=1]
spring 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 中工作。packag...

Spring bean 繼承與依賴

spring 允許繼承 bean 的配置,被繼承的 bean 稱為父 bean.繼承這個父 bean 的 bean 稱為子 bean 子 bean 從父 bean 中繼承配置,包括 bean 的屬性配置 子 bean 也可以覆蓋從父 bean 繼承過來的配置 父 bean 可以作為配置模板,也可以作...