Spring Ioc 實(shí)例化 Bean 對(duì)象有幾種方式?

Spring 實(shí)例化 bean 的方式

  • 構(gòu)造器的方式
  • 靜態(tài)工廠方式
  • 實(shí)例化工廠方式

案例實(shí)操

構(gòu)造器的方式實(shí)例化 bean 對(duì)象

<bean id="hello" name="hello" class="com.xxx.demo.Hello"></bean>

**通過默認(rèn)構(gòu)造器創(chuàng)建 空構(gòu)造方法必須存在 否則創(chuàng)建失敗 **

靜態(tài)工廠模式

特點(diǎn):

要有該工廠類及工廠方法

工廠方法是靜態(tài)的

StaticFactory 靜態(tài)工廠

/**
 * 靜態(tài)工廠模式
 *
 */
public class StaticFactory {
    public static GoodsService createGoodsService() {//方法一定要是一個(gè)靜態(tài)方法
        return new GoodsService();
    }
}

GoodsService實(shí)體類

public class GoodsService {
    public void getGoodsInfo() {
        System.out.println("外星人賊便宜");
    }
}

Bean配置

<bean id="goodsService" 
        class="com.xxx.demo.StaticFactory" factory-method="createGoodsService"></bean>

當(dāng)我們指定Spring使用靜態(tài)工廠方法來創(chuàng)建Bean實(shí)例時(shí),Spring將先解析配置文件,并根據(jù)配置文件指定的信息,通過反射調(diào)用靜態(tài)工廠類的靜態(tài)工廠方法,并將該靜態(tài)工廠方法的返回值作為Bean實(shí)例叁怪,在這個(gè)過程中,Spring不再負(fù)責(zé)創(chuàng)建Bean實(shí)例深滚,Bean實(shí)例是由用戶提供的靜態(tài)工廠方法提供的奕谭。

實(shí)例化工廠方式創(chuàng)建 Bean

相比較靜態(tài)工廠實(shí)現(xiàn)

1、工廠方法為非靜態(tài)方法

2成箫、需要配置工廠bean展箱,并在業(yè)務(wù)bean中配置factory-bean,factory-method屬性

實(shí)例化工廠定義

/**
 * 實(shí)例化工廠
 * @author Best Liu
 *
 */
public class InstanceFactory {
    public OrderService createOrderService() {
        return new OrderService();
    }
}

實(shí)體類定義

public class OrderService {
    public void getOrderInfo() {
        System.out.println("親,已經(jīng)下單完成蹬昌,但是想發(fā)貨沒門");
    }
}

Bean配置

<!-- 
    實(shí)例化工廠 
    1混驰、定義實(shí)例化工廠bean
    2、引用工廠bean指定工廠創(chuàng)建方法(方法為非靜態(tài))
-->
    <bean id="instanceFactory" class="com.xxx.demo.InstanceFactory"></bean>
    <bean id="orderService" factory-bean="instanceFactory" factory-method="createOrderService"></bean>

擴(kuò)展

Spring 三種實(shí)例化 bean 的方式比較

方式一:通過bean的缺省構(gòu)造函數(shù)創(chuàng)建皂贩,當(dāng)各個(gè)bean的業(yè)務(wù)邏輯相互比較獨(dú)立的時(shí)候或者和外界關(guān)聯(lián)較少的時(shí)候可以使用栖榨。

方式二:利用靜態(tài)factory方法創(chuàng)建,可以統(tǒng)一管理各個(gè)bean的創(chuàng)建明刷,如各個(gè)bean在創(chuàng)建之前需要相同的初始化處理婴栽,則可用這個(gè)factory方法先進(jìn)行統(tǒng)一的處理等等。

方式三:利用實(shí)例化factory方法創(chuàng)建辈末,即將factory方法也作為了業(yè)務(wù)bean來控制愚争,

1、可用于集成其他框架的bean創(chuàng)建管理方法

2挤聘、能夠使bean和factory的角色互換

開發(fā)中項(xiàng)目一般使用一種方式實(shí)例化bean轰枝,項(xiàng)目開發(fā)基本采用第一種方式,交給spring托管组去,使用時(shí)直接拿來使用即可鞍陨,另外兩種了解即可。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末从隆,一起剝皮案震驚了整個(gè)濱河市诚撵,隨后出現(xiàn)的幾起案子缭裆,更是在濱河造成了極大的恐慌,老刑警劉巖寿烟,帶你破解...
    沈念sama閱讀 212,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件澈驼,死亡現(xiàn)場離奇詭異,居然都是意外死亡筛武,警方通過查閱死者的電腦和手機(jī)盅藻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來畅铭,“玉大人,你說我怎么就攤上這事勃蜘∷敦” “怎么了?”我有些...
    開封第一講書人閱讀 158,369評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵缭贡,是天一觀的道長炉擅。 經(jīng)常有香客問我,道長阳惹,這世上最難降的妖魔是什么谍失? 我笑而不...
    開封第一講書人閱讀 56,799評(píng)論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮莹汤,結(jié)果婚禮上快鱼,老公的妹妹穿的比我還像新娘。我一直安慰自己纲岭,他們只是感情好抹竹,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,910評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著止潮,像睡著了一般窃判。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上喇闸,一...
    開封第一講書人閱讀 50,096評(píng)論 1 291
  • 那天袄琳,我揣著相機(jī)與錄音,去河邊找鬼燃乍。 笑死唆樊,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的橘沥。 我是一名探鬼主播窗轩,決...
    沈念sama閱讀 39,159評(píng)論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼座咆!你這毒婦竟也來了痢艺?” 一聲冷哼從身側(cè)響起仓洼,我...
    開封第一講書人閱讀 37,917評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎堤舒,沒想到半個(gè)月后色建,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,360評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡舌缤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,673評(píng)論 2 327
  • 正文 我和宋清朗相戀三年箕戳,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片国撵。...
    茶點(diǎn)故事閱讀 38,814評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡陵吸,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出介牙,到底是詐尸還是另有隱情壮虫,我是刑警寧澤,帶...
    沈念sama閱讀 34,509評(píng)論 4 334
  • 正文 年R本政府宣布环础,位于F島的核電站囚似,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏线得。R本人自食惡果不足惜饶唤,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,156評(píng)論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望贯钩。 院中可真熱鬧募狂,春花似錦、人聲如沸角雷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽谓罗。三九已至粱哼,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間檩咱,已是汗流浹背揭措。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評(píng)論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留刻蚯,地道東北人绊含。 一個(gè)月前我還...
    沈念sama閱讀 46,641評(píng)論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像炊汹,于是被迫代替她去往敵國和親躬充。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,728評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容