Spring例項化Bean的三種方法

2021-10-22 13:20:50 字數 2497 閱讀 4011

在物件導向的程式中,要想呼叫某個類的成員方法,就需要先例項化該類的物件。在 spring 中,例項化 bean 有三種方式,分別是構造器例項化、靜態工廠方式例項化和例項工廠方式例項化。本節將針對這三種方式分別進行講解。

構造器例項化是指 spring 容器通過 bean 對應的類中預設的建構函式例項化 bean。下面通過案例演示如何使用構造器例項化 bean。

1. 建立專案並匯入 jar 包

在 myeclipse 中建立乙個名稱為 springdemo02 的 web 專案,然後將 spring 支援和依賴的 jar 包複製到專案的 lib 目錄中,並發布到類路徑下。

2. 建立實體類

在專案的 src 目錄下建立乙個名為 com.mengma.instance.constructor 的包,在該包下建立乙個實體類 person1,如下所示。

package com.mengma.instance.constructor;

public class person1

3. 建立 spring 配置檔案
<?xml version="1.0" encoding="utf-8"?>

在上述配置中,定義了乙個 id 為 person1 的 bean,其中 class 屬性指定了其對應的類為 person1。

4. 建立測試類

在 com.mengma.instance.constructor 包下建立乙個名為 instancetest1 的測試類,編輯後如下所示。

package com.mengma.instance.constructor;

import org.junit.test;

public class instancetest1

}

上述檔案中,首先在 test() 方法中定義了 spring 配置檔案的路徑,然後 spring 容器會載入配置檔案。在載入的同時,spring 容器會通過實現類 person1 中預設的無參建構函式對 bean 進行例項化。

5. 執行程式並檢視結果

使用 junit 測試執行 test() 方法,執行成功後,控制台的輸出結果如圖 1 所示。

在 spring 中,還有一種例項化 bean 的方式就是採用例項工廠。在這種方式中,工廠類不再使用靜態方法建立 bean 的例項,而是直接在成員方法中建立 bean 的例項。

同時,在配置檔案中,需要例項化的 bean 也不是通過 class 屬性直接指向其實例化的類,而是通過 factory-bean 屬性配置乙個例項工廠,然後使用 factory-method 屬性確定使用工廠中的哪個方法。下面通過案例演示例項工廠方式的使用。

1. 建立實體類

在專案的 src 目錄下建立乙個名為 com.mengma.instance.factory 的包,在該包下建立乙個 person3 類,該類與 person1 類相同,不需要新增任何成員。

2. 建立例項工廠類

在 com.mengma.instance.factory 包下建立乙個名為 mybeanfactory 的類,編輯後如下所示。

package com.mengma.instance.factory;

public class mybeanfactory

// 建立bean的方法

public person3 createbean()

}

上述**中,使用預設無參的構造方法輸出 person3 工廠例項化中語句,使用 createbean 成員方法建立 bean 的例項。

3. 建立 spring 配置檔案

<?xml version="1.0" encoding="utf-8"?>

上述**中,首先配置了乙個例項工廠 bean,然後配置了需要例項化的 bean。在 id 為 person3 的 bean 中,使用 factory-bean 屬性指定乙個例項工廠,該屬性值就是例項工廠的 id 屬性值。使用 factory-method 屬性確定使用工廠中的 createbean() 方法。

4. 建立測試類

在 com.mengma.instance.factory 包下建立乙個名為 instancetest3 的測試類,編輯後如下所示。

package com.mengma.instance.factory;

import org.junit.test;

public class instancetest3

}

spring 三種例項化bean

利用person類的無引數建構函式例項化person類 package com.spring public class person public person string name,int age public string getname public void setname string ...

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例項化乙...