Spring中Bean的例項化

2021-08-02 22:22:24 字數 2328 閱讀 1102

spring中bean的例項化

在介紹bean的三種例項化的方式之前,我們首先需要介紹一下什麼是bean,以及bean的配置方式。

如果把spring看作乙個大型工廠,那麼spring容器中的bean就是該工廠的產品。要想使用spring工廠生產和管理bean,就需要在配置檔案中指明需要哪些bean,以及需要使用何種方式將這些bean裝配到一起。

spring容器支援兩種格式的配置檔案,分別為properties檔案格式和xml檔案格式,而在實際的開發當中,最常使用的額是xml檔案格式,因此在如下的講解中,我們以xml檔案格式的配置方式進行說明。xml配置檔案的根元素是,其可以包含多個子元素,每個子元素定義乙個bean,並描述了bean該如何被裝配到spring容器中。元素中的屬性如下:

在配置檔案中,通常乙個普通的bean只需要定義id和class兩個屬性即可,定義bean的方式如下:

xml version="1.0" encoding="utf-8"

?>

doctype beans public "-//spring//dtd bean//en"

"">

<

beans

>

<

bean

id="userdao"

class

="com.ioc.userdaoimpl"

/>

<

bean

name

="userdao1, userdao2"

class

="com.ioc.userdaoimpl2"

/>

beans

>

上述**中,分別使用id和name屬性定義了兩個bean,並使用class元素指定其對應的實現類,如果未指定id和name,則spring會將class值當做id使用。

bean的例項化

bean的例項化有三種方式:構造器例項化、靜態工廠方式例項化、例項工廠方式例項化。

該方式首先要求建立乙個靜態工廠類,然後在類中定義乙個靜態方法來建立bean例項,靜態工廠類及靜態方法的**如下:

public

class

myuserdaofactory

}

然後是xml配置檔案的內容如下:

xml version="1.0" encoding="utf-8"

?>

doctype beans public "-//spring//dtd bean//en"

"">

<

beans

>

<

bean

id="userdao"

class

="com.ioc.myuserdaofactory"

factory-method

="createuserdao"

/>

beans

>

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

工廠類方法**如下:

public

class

mybeanfactory

public

userdaoimpl createuserdao()

}

xml配置檔案如下:

xml version="1.0" encoding="utf-8"

?>

doctype beans public "-//spring//dtd bean//en"

"">

<

beans

>

<

bean

id="mybeanfactory"

class

="com.ioc.mybeanfactory"

/>

<

bean

id="userdao"

factory-bean

="mybeanfactory"

factory-method

="createuserdao"

/>

beans

>

好像只有這些**和xml配置檔案無法執行啊,缺少主函式,看看我們的client主函式,主函式內**如下:

public

class

client

}

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.如果實...

Spring中bean的例項化順序

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