Spring框架通過工廠建立Bean的三種方式實現

2022-10-06 03:03:05 字數 1422 閱讀 4248

工廠模式

spring中bean的建立,預設是框架利用反射new出來的bean例項。有時候也會有一些複雜的情況。

假設有乙個飛機,屬性如下,現在需要造很多同型號的飛機,那麼唯一需要改變的屬性只有drivername(機長姓名),此時可以使用工廠模式幫我們建立物件,有乙個專門幫我們建立物件的類幫我們建立物件,這個類就叫工廠。

public csouhjfvgmlass airplane

靜態工廠:工廠本身不用建立物件,通過靜態方法呼叫。

例項工廠:工廠本身需要建立物件,需要先new乙個工廠例項。

1.使用靜態工廠建立bean

靜態工廠:

package com.gql.factory;

import com.gql.bean.airplane;

/** * 靜態工廠

* * @author guoqianliang

*/public class airplanestaticfactory

}在xml中註冊靜態工廠:

測試:

@test

public void test07()

2.使用例項工廠建立bean

例項工廠:

package com.gql.factory;

import com.gql.bean.airplane;

/** * 例項工廠

* @author guoqianliang

*/public class airplaneinstancefactory

}在xml中註冊例項工廠:

"class="com.gql.factory.airplaneinstancefactory">

測試:@test

public void test08()

3.實現factorybean工廠建立bean

ioc容器啟動的時候不會建立例項(無論是單例項還是多例項),獲取的時候才建立例項物件。

實現factorybean介面:

package com.gql.factory;

import org.springframework.beans.factory.factorybean;

import com.gql.bean.book;

public class myfactorybean implements factorybean

/*** 返回建立的物件的型別

*/@override

public classsouhjfvgm;> getobjecttype()

/*** 是單例? true:是 false:不是

*/@override

public boolean issingleton()

}在xml中註冊:

測試:@test

public void test09()

Spring構造通過工廠建立bean

靜態工廠 getuserbyfactory class entity.factorybean factory method getbean bean factory類 public class factorybean 非靜態工廠載入bean factory class entity.factory ...

spring框架通過註解配置bean

首先新建乙個beansannotation.xml的檔案,然後要引入context命名空間,通過註解配置bean,使用標籤。xmlns xmlns xsi xmlns context xsi schemalocation spring beans.xsd spring context 4.0.xsd...

Spring的靜態工廠和例項工廠建立物件

spring靜態工廠與動態工廠的建立與配置 靜態工廠建立物件 一 通過靜態工廠模式建立物件 package cn.jz.beans public class bean1 package cn.jz.beans public class bean1 factory 二 通過例項工廠模式建立物件 pac...