Spring bean配置繼承

2022-05-06 10:33:12 字數 1540 閱讀 9393

在 spring,繼承是用為支援bean設定乙個 bean 來分享共同的值,屬性或配置。

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

請參見下面的完整的例子來告訴你如何配置 bean 繼承在 spring 中工作。

package com.yiibai.common;

public class customer

bean配置檔案

以上就是「basecustomermalaysia」 bean中含有的 country 屬性的值,而「customerbean」 bean 繼承其父('basecustomermalaysia')這個值。

執行它

package com.yiibai.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」)country 屬性,從 『malaysia』 修改為 『japan』.

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中工作。package com.mkyong.common...

Spring bean 繼承與依賴

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