Spring筆記(8) 之間的關係

2021-06-23 05:34:33 字數 1449 閱讀 7166

1)繼承:

如果多個bean存在相同的配置資訊,spring允許我們定義乙個父,子將自動繼承父的配置資訊。

如下:

這兩個bean的配置存在大量重複資訊,可以通過父子bean很好的消除這種重複配置:

car1跟car2都繼承自abstractcar,spring會將父bean的配置資訊傳遞給子bean,如果子bean提供了父bean已有的配置資訊,那麼子bean的會覆蓋父bean的

父bean的功能主要是為了簡化子bean的配置,所以一般宣告為abstract=「true」,表示這個不例項化為乙個對應的bean,如果使用者不指定該屬性為true,那麼ioc容器會例項化乙個名叫abstractcar的bean。

2)依賴

一般情況使用即可建立乙個bean對其他bean的依賴關係,spring負責管理這些bean的關係,當例項化乙個bean時,spring保證該bean所依賴的其他bean已經初始化。

書上舉了乙個比較經典而特殊的例子:

例如乙個系統,有乙個systemsetting類,

public class systemsetting

裡面有一些系統引數的預設值。

而這個系統有個管理後台,可以修改這些值儲存到資料庫中,而有乙個sysinit類,在初始化的時候從資料中拿到值,修改systemsetting的引數

public class sysinit 

}

假設這個系統有乙個快取重新整理管理器,它需要根據系統引數systemsetting.refresh_cycle建立快取重新整理定時任務:

public class cachemanager 

}

在上面的例子中cachemanager依賴於systemsetting,而systemsetting的值由sysinit負責初始化,雖然

cachemanager不直接依賴於sysinit,但是,從邏輯上講,cachemanager希望在sysinit載入並完成系統引數設定後再啟動,以避免呼叫不到真實的引數值。如果這三個bean都在配置中配,如何保證sysinit在cachemanager之前初始化呢?

使用depends-on屬性可以指定bean的前置依賴bean,前置依賴bean會在本bean例項化之前建立好:

這樣配置就哦了,如果前置依賴於多個bean,可以通過逗號,空格,或分號分隔開來。

3)引用

假如乙個bean要引用另乙個bean的配置的id屬性值,可以使用如下配置:

如果引用者與被引用者位於同乙個配置檔案中,可以使用,這是ide的xml分析器就可以在開發期發現引用錯誤了。

spring學習筆記四 bean之間的關係

一 繼承關係 relation.xml 首先建立乙個bean 在建立乙個bean,其中有很多相同之處,為了簡化 可以繼承address 可以建立乙個bean模板,新增乙個abstract,值設為true 模板是不能被例項化的,只提供被繼承 注意 如果抽象對的bean被例項化,就會報錯,同抽象類一樣不...

Spring中bean之間的關係

今天我們來談一下bean之間的關係 一.繼承關係 xmlns xmlns xsi xmlns p xsi schemalocation spring beans.xsd address1 p city 廈門 p stree 蓮前街道 abstract true bean address2 class...

Spring全回顧bean之間的引用關係

首先建立乙個類 注意 此類的car屬性實際上引用了乙個carr物件,可以建立乙個car,見上篇文章 spring全回顧之構造方法注入值 package com.kk.spring.beans public class person public void setname string name pu...