spring知識二 bean關係和作用域

2021-07-28 11:04:37 字數 2953 閱讀 8586

1、spring 允許繼承 bean 的配置, 被繼承的 bean 稱為父 bean. 繼承這個父 bean 的 bean 稱為子 bean

子 bean 從父 bean 中繼承配置, 包括 bean 的屬性配置。

2、子 bean 也可以覆蓋從父 bean 繼承過來的配置。

3、父 bean 可以作為配置模板, 也可以作為 bean 例項. 若只想把父 bean 作為模板, 可以設定 【bean】 的abstract 屬性為 true, 這樣 spring 將不會例項化這個 bean。

4、並不是 【bean】 元素裡的所有屬性都會被繼承. 比如: autowire, abstract 等。

5、也可以忽略父 bean 的 class 屬性, 讓子 bean 指定自己的類, 而共享相同的屬性配置. 但此時 abstract 必須設為 true。

id="address"

class="com.wf.springbeanrelation.address"

abstract="true">

name="city"

value="henan">

property>

name="street"

value="luoyang">

property>

bean>

id="address01"

parent="address">

name="street"

value="zhengzhou">

property>

bean>

id="address02"

parent="address01">

bean>

1、spring 允許使用者通過 depends-on 屬性設定 bean 前置依賴的bean,前置依賴的 bean 會在本 bean 例項化之前建立好

2、如果前置依賴於多個 bean,則可以通過逗號,空格或的方式配置 bean 的名稱

id="car"

class="com.wf.springbeanrelation.car">

name="brand"

value="fute">

property>

name="price"

value="25100">

property>

bean>

id="user"

class="com.wf.springbeanrelation.user"

depends-on="car">

name="name"

value="tom">

property>

name="address"

ref="address02">

property>

bean>

在 spring 中, 可以在 【bean】 元素的 scope 屬性裡設定 bean 的作用域.

預設情況下, spring 只為每個在 ioc 容器裡宣告的 bean 建立唯一乙個例項, 整個 ioc 容器範圍內都能共享該例項:所有後續的 getbean() 呼叫和 bean 引用都將返回這個唯一的 bean 例項.該作用域被稱為 singleton, 它是所有 bean 的預設作用域.

一般情況下,我們都會給資料庫的配置檔案配置到單獨的properties檔案中,然後再在總的配置檔案中進行引用,這樣我們可以很方便的修改我們的資料庫配置,而不是找到總的配置檔案開啟,再去修改。

引入外部檔案,我們需要在總的配置檔案中,新增新的命名空間context。

xmlns:context=""

/spring-context-4.0.xsd

location="classpath:db.properties"/>

id="datasource"

class="com.mchange.v2.c3p0.combopooleddatasource">

name="user"

value="$">

property>

name="password"

value="$">

property>

name="driverclass"

value="$">

property>

name="jdbcurl"

value="$">

property>

name="initialpoolsize"

value="$">

property>

name="maxpoolsize"

value="$">

property>

bean>

原始碼可以在我的資源中檢視 或者 github位址

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配置)

繼承圖 beanfactory 載入配置檔案時,例項化延遲,在呼叫getbean 的時候才進行例項化。test public void testhellospring 這種方式,比較常用,也就是只在bean.xml檔案中配置就行了 id userid class com.exmaple.spring...

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

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