關於spring bean 的總結

2021-08-29 21:10:23 字數 1098 閱讀 9868

1.bean的別名:

在對bean進行定義時,除了使用id屬性來指定名稱之外,為了提供多個名稱,需要通過alias屬性來加以指定。而所有的這些名稱都指向同乙個bean,在某些情況下提供別名非常有用,比如為了讓應用的每乙個元件能更容易的對公共元件進行引用。

然而,在定義bean時就指定所有的別名並不是總是恰當的。有時我們期望能在當前位置為那些在別處定義的bean引入別名。在xml配置檔案中,可用單獨的元素來完成bean別名的定義。如:

2.例項化bean:

a.用構造器來例項化

當採用構造器來建立bean例項時,spring對class並沒有特殊的要求,我們通常使用的class都適用。也就是說,被建立的類並不需要實現任何特定的介面,或以特定的方式編碼,只要指定bean的class屬性即可。不過根據所採用的ioc型別,class可能需要乙個預設的空構造器。

當使用基於xml的元資料配置檔案,可以這樣來指定bean類:

b.使用 靜態工廠方法例項化

當採用靜態工廠方法建立bean時,除了需要指定class屬性外,還需要通過factory-method屬性來指定建立bean例項的工廠方法。spring將呼叫此方法(其可選引數接下來介紹)返回例項物件,就此而言,跟通過普通構造器建立類例項沒什麼兩樣。

下面的bean定義展示了如何通過工廠方法來建立bean例項。注意,此定義並未指定返回物件的型別,僅指定該類包含的工廠方法。在此例中, createinstance()必須是乙個static方法。

c.使用例項工廠方法例項化

與使用靜態工廠方法例項化類似,用來進行例項化的例項工廠方法位於另外乙個已有的bean中,容器將呼叫該bean的工廠方法來建立乙個新的bean例項

為使用此機制,class屬性必須為空,而factory-bean屬性必須指定為當前(或其祖先)容器中包含工廠方法的bean的名稱,而該工廠bean的工廠方法本身必須通過factory-method屬性來設定(參看以下的例子)。

...

關於Spring Bean的生命週期

二 圖例 生命週期圖如下 也可以概括為 三 圖例說明 1 例項化乙個bean 2 按照spring上下文對例項化的bean進行配置,也就是ioc注入 3 如果這個bean已經實現了beannameaware介面,會呼叫它實現的setbeanname string 方法,傳遞的引數就是spring配置...

關於Spring Bean的生命週期

二 圖例 生命週期圖如下 也可以概括為 三 圖例說明 1 例項化乙個bean 2 按照spring上下文對例項化的bean進行配置,也就是ioc注入 3 如果這個bean已經實現了beannameaware介面,會呼叫它實現的setbeanname string 方法,傳遞的引數就是spring配置...

spring bean屬性及子元素使用總結

spring框架中主要有四種標籤bean alias import beans,其中bean標籤是其他標籤的基礎,此文主要對bean標籤的屬性及其子元素進行討論,廢話不多,請往下看。一 bean標籤的屬性 1 scope 用來配置spring bean的作用域 2 singleton 表示bean為...