工廠模式
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...