spring載入bean例項化順序

2021-07-13 01:30:26 字數 956 閱讀 8120

有乙個bean為 a,乙個bean為b。想要a在容器例項化的時候的乙個屬性name賦值為b的乙個方法funb的返回值。

如果只是在a裡單純的寫著:

private b b;

private string name = b.funb();

會報錯說nullpointexception,因為這個時候b還沒被set進來,所以為null。

解決辦法為如下**,同時學習下spring中 initializingbean ,物件 構造方法 , init-method 的執行順序。

public class a implements initializingbean

public a()

public void init()

@override

public string tostring()

public void afterpropertiesset() throws exception

}public class b

public b()

}spring配置檔案

測試**:

public static void main(string args)

程式輸出為:

a initialed

b initialed

a.setb initialed

afterpropertiesset

init

funb

[email protected]

從這裡看到a的name屬性在bean載入完成的時候也被成功設定為b的funb方法的返回值了,要點就是用init-method來實現。

載入順序也可以看到為:

先建構函式——>然後是b的set方法注入—— >initializingbean 的afterpropertiesset方法——>init- method方法

總結為:

spring例項化Bean理解

技術 2009 10 17 15 56 45 閱讀127 字型大小 大 中小訂閱 有乙個bean為a,乙個bean為b。想要a在容器例項化的時候的乙個屬性name賦值為b的乙個方法funb的返回值。如果只是在a裡單純的寫著 private b b private string name b.funb...

spring例項化bean的方式

主要利用三種注入方式 介面注入 不推薦 getter,setter方式注入 比較常用 構造器注入 死的應用 關於getter和setter方式的注入 有三種匹配方式 構造器注入 2 使用靜態工廠方法例項化 利用examples.examplebean2 的靜態方法createinstance例項化乙...

Spring中Bean的例項化

spring中bean的例項化 在介紹bean的三種例項化的方式之前,我們首先需要介紹一下什麼是bean,以及bean的配置方式。如果把spring看作乙個大型工廠,那麼spring容器中的bean就是該工廠的產品。要想使用spring工廠生產和管理bean,就需要在配置檔案中指明需要哪些bean,...