8.Bean的作用域

在默認情況下冰评,Spring應用上下文中所有的bean都是以單例的形式創(chuàng)建的琼娘。
1.spring定義了多種作用域阅悍,可以基于這些作用域創(chuàng)建bean,包括
(1).單例:在整個應用中弦撩,值創(chuàng)建bean的一個實例步咪。是spring默認的作用域。
(2).原型:每次注入或者通過spring應用上下文獲取的時候益楼,都會創(chuàng)建一個新的bean的實例猾漫。
(3).會話:在web應用中,會為每個會話創(chuàng)建一個bean實例感凤。
(4).請求:在web應用中悯周,為每個請求創(chuàng)建一個bean實例。
2.如果需要指定除單例外的其他作用域陪竿,需要使用@Scope注解禽翼,形式如下:
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
如果使用XML來配置的話,可以使用<bean>元素的scope屬性來設置作用域族跛。
3.使用會話和請求作用域
假設我們在淘寶購物闰挡,購物車如果是單例的,那么所有人的商品都會被添加到同一個購物車礁哄。如果是原型的解总,那么再其他的地方就不可以使用,所以此時我們可以考慮會話作用域姐仅。


@scope注解

再來了解一下ScopeProxyMode這個枚舉類花枫,具體如下顯示


ScopeProxyMode

可以看出里面有四種選擇,分別是DEFAULT,NO,INTERFACE,TARGET_CLASS掏膏。
我們再來看一下WebApplicationContext接口劳翰,如下圖所示:
WebApplicationContext接口

從上面我們可看出有多種SCOPE的作用域,而且WebApplicationContext接口繼承了ApplicationContext接口馒疹,下圖是ApplicationContext接口的定義:


ApplicationContext接口定義

Spring是沒有辦法創(chuàng)建基于接口的代理佳簸。它必須使用CGLib來生成基于類的代理。所以颖变,如果bean類型是具體類的話生均,我們必須要將proxyMode屬性設置為ScopeProxyMode.TARGET_CLASS,以此來表明要以生成目標類擴展的方式創(chuàng)建代理腥刹。


上面看了一下bean作用域的注解方式马胧,接下來看看bean的作用域的xml配置方式:
(1)<bean>元素有scope屬性,通過scope來配置bean的作用域衔峰。
(2)spring會為bean創(chuàng)建一個作用域代理佩脊,默認情況下蛙粘,它會使用CGLib創(chuàng)建目標類的代理。也可以通過設置proxy-target-class屬性設置為false威彰,來生成基于接口的代理出牧。使用<aop:scoped-proxy>,要使用這個元素歇盼,必須在XML的beans根元素中聲明該命名空間舔痕。

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市豹缀,隨后出現的幾起案子赵讯,更是在濱河造成了極大的恐慌,老刑警劉巖耿眉,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件边翼,死亡現場離奇詭異,居然都是意外死亡鸣剪,警方通過查閱死者的電腦和手機组底,發(fā)現死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來筐骇,“玉大人债鸡,你說我怎么就攤上這事☆跷常” “怎么了厌均?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長告唆。 經常有香客問我棺弊,道長,這世上最難降的妖魔是什么擒悬? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任模她,我火速辦了婚禮,結果婚禮上懂牧,老公的妹妹穿的比我還像新娘侈净。我一直安慰自己,他們只是感情好僧凤,可當我...
    茶點故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布畜侦。 她就那樣靜靜地躺著,像睡著了一般躯保。 火紅的嫁衣襯著肌膚如雪旋膳。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天吻氧,我揣著相機與錄音溺忧,去河邊找鬼咏连。 笑死盯孙,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播手幢,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼欠肾,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了骑晶?” 一聲冷哼從身側響起痛垛,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎桶蛔,沒想到半個月后匙头,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡仔雷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年蹂析,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片碟婆。...
    茶點故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡电抚,死狀恐怖,靈堂內的尸體忽然破棺而出竖共,到底是詐尸還是另有隱情蝙叛,我是刑警寧澤,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布公给,位于F島的核電站借帘,受9級特大地震影響,放射性物質發(fā)生泄漏淌铐。R本人自食惡果不足惜姻蚓,卻給世界環(huán)境...
    茶點故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望匣沼。 院中可真熱鬧狰挡,春花似錦、人聲如沸释涛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽唇撬。三九已至它匕,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間窖认,已是汗流浹背豫柬。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工告希, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人烧给。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓燕偶,卻偏偏與公主長得像,于是被迫代替她去往敵國和親础嫡。 傳聞我的和親對象是個殘疾皇子指么,可洞房花燭夜當晚...
    茶點故事閱讀 44,843評論 2 354

推薦閱讀更多精彩內容