Spring中bean例項化的三種方式

2021-07-27 05:50:03 字數 2084 閱讀 3876

之前我已經有好幾篇部落格介紹spring框架了,不過當時我們都是使用註解來完成注入的,具體小夥伴可以參考這幾篇部落格(spring&springmvc框架案例)。那麼今天我想來說說如何通過xml配置來例項化bean,其實也很簡單。

使用xml配置來例項化bean共分為三種方式,分別是普通構造方法建立、靜態工廠建立、例項工廠建立,ok,那麼接下來我們來分別看看這幾種方式。

這種建立方式使我們使用最多的一種建立方式,直接配置bean節點即可,比如我有乙個user類,如下:

public

class user

}

然後通過簡單配置乙個bean節點就可以獲取例項了,如下:

id="user"/>

ok,我們通過如下**進行乙個簡單的測試:

user user = (user) context.getbean("user");

system.out.println(user);

執行輸出結果如下:

除了通過普通的構造方法建立之外,我們也可以通過靜態構造方法來建立乙個bean的例項,假設我有乙個類叫做user2,如下:

public

class user2

}

我給它建立乙個靜態工廠,如下:

public

class user2factory

}

該工廠中有乙個靜態方法,該靜態方法返回乙個user2的例項,在spring的配置檔案中,我們看看如何生成user2的例項:

"user2"

class="org.sang.user2factory" factory-method="getinstance"/>

還是bean節點,只是多了乙個factory-method屬性,該屬性指明該類中的靜態工廠方法名為getinstance,這樣spring框架就知道呼叫哪個方法來獲取user2的例項了,測試**如下:

@test

public

void

test2()

測試結果如下:

值得強調的是,這種方法並不常用。

小夥伴們看了靜態工廠建立bean例項肯定都覺得很麻煩,事實上還有比靜態工廠更麻煩的寫法,那就是通過例項工廠來建立bean例項。例項工廠,顧名思義,就是我們工廠中的方法不是靜態的,比如說,我有乙個實體類叫做user3,如下:

public

class user3

}

然後我還有乙個工廠方法,如下:

public

class user3factory

}

小夥伴們看到,在user3factory類中有乙個getuser3的方法,該方法返回乙個user3類的例項,但是該方法不是靜態的,那麼我們在spring的配置檔案中要進行怎樣的配置才能獲取user3的乙個例項呢?如下:

id="user3factory"/>

id="user3" factory-bean="user3factory" factory-method="getuser3"/>

第乙個bean用來獲取user3factory的例項,第二個bean則根據user3factory的例項,然後指定factory-method,通過getuser3方法來獲取user3的例項。

測試**如下:

@test

public

void

test3()

測試結果如下:

ok,以上就是bean例項化的三種方式,最最常用的是第一種。

以上。

Spring中Bean的例項化

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

Spring中bean的例項化

我們可以使用普通構造方法建立 靜態工廠建立 例項工廠建立三種方式來例項化bean。普通構造方法建立 直接配置bean節點即可 public class user 然後通過簡單配置乙個bean節點即可獲取例項 靜態工廠建立 public class user2 建立乙個靜態工廠 public clas...

Spring中bean的例項化順序

載入順序 先建構函式 然後是b的set方法注入 initializingbean的afterpropertiesset方法 init method方法 以下內容是從書中摘錄來的,但是我發現即使摘錄一遍,對其內容的理解也會更加深入 spring裝配bean的過程 1.例項化 2.設定屬性值 3.如果實...