第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

Spring容器中的Singleton設(shè)計(jì)模式與Singleton bean

Spring容器中的Singleton設(shè)計(jì)模式與Singleton bean

斯蒂芬大帝 2019-10-08 11:13:47
眾所周知,默認(rèn)情況下,Spring容器中將bean作為單例,如果我們有一個(gè)基于Spring框架的Web應(yīng)用程序,那么在這種情況下,我們真的需要實(shí)現(xiàn)Singleton設(shè)計(jì)模式來保存全局?jǐn)?shù)據(jù),而不僅僅是通過spring創(chuàng)建bean 。如果我無法解釋我真正要問的問題,請忍受。
查看完整描述

4 回答

?
瀟湘沐

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超6個(gè)贊

Spring中的單例豆和單例模式有很大不同。Singleton模式表示,每個(gè)類加載器將只創(chuàng)建一個(gè)特定類的一個(gè)實(shí)例。


Spring單例的范圍被描述為“每個(gè)容器每個(gè)bean”。對于每個(gè)Spring IoC容器,單個(gè)對象實(shí)例的bean定義范圍就是這樣。Spring的默認(rèn)范圍是Singleton。


即使默認(rèn)范圍是單例,您也可以通過指定<bean ../>element 的scope屬性來更改bean的范圍。


<bean id=".." class=".." scope="prototype" />


查看完整回答
反對 回復(fù) 2019-10-08
?
POPMUISE

TA貢獻(xiàn)1765條經(jīng)驗(yàn) 獲得超5個(gè)贊

Spring中的Singleton范圍表示Spring上下文中的單個(gè)實(shí)例

。Spring容器僅一次又一次返回同一實(shí)例,以供后續(xù)調(diào)用以獲取Bean。



而且,無論bean的類是否被編碼為singleton,spring都不會打擾;實(shí)際上,如果該類被編碼為其構(gòu)造函數(shù)為private的singleton,Spring則使用BeanUtils.instantiateClass(此處為Javadoc )將構(gòu)造函數(shù)設(shè)置為可訪問并調(diào)用它。


或者,我們可以像這樣在bean定義中使用factory-method屬性


    <bean id="exampleBean" class="example.Singleton"  factory-method="getInstance"/>


查看完整回答
反對 回復(fù) 2019-10-08
?
繁華開滿天機(jī)

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超4個(gè)贊

讓我們以最簡單的示例為例:您有一個(gè)應(yīng)用程序,而僅使用默認(rèn)的類加載器。您有一個(gè)類,無論出于何種原因,您都決定該類在應(yīng)用程序中不應(yīng)有多個(gè)實(shí)例。(考慮一個(gè)由幾個(gè)人共同處理應(yīng)用程序的場景)。

如果您不使用Spring框架,則Singleton模式可確保您的應(yīng)用程序中一個(gè)類的實(shí)例不超過一個(gè)。那是因?yàn)闃?gòu)造函數(shù)是私有的,所以無法通過執(zhí)行“ new”來實(shí)例化類的實(shí)例。獲取該類實(shí)例的唯一方法是調(diào)用該類的某些靜態(tài)方法(通常稱為“ getInstance”),該方法始終返回相同的實(shí)例。

說您在應(yīng)用程序中使用Spring框架,僅意味著除了獲取類實(shí)例的常規(guī)方法(返回類實(shí)例的新方法或靜態(tài)方法)之外,您還可以要求Spring幫助您該類的實(shí)例,Spring會確保即使您未使用Singleton模式編寫該類,只要您向其要求該類的實(shí)例,它將始終返回相同的實(shí)例。換句話說,即使該類具有公共構(gòu)造函數(shù),如果您始終向Spring請求該類的實(shí)例,則Spring在應(yīng)用程序生命周期內(nèi)只會調(diào)用該構(gòu)造函數(shù)一次。

通常,如果使用Spring,則應(yīng)僅使用Spring創(chuàng)建實(shí)例,并且可以為該類提供一個(gè)公共構(gòu)造函數(shù)。但是,如果您的構(gòu)造函數(shù)不是私有的,那么您實(shí)際上并不會通過繞過Spring來阻止任何人直接創(chuàng)建該類的新實(shí)例。

如果您確實(shí)想要該類的單個(gè)實(shí)例,即使您在應(yīng)用程序中使用Spring并將Spring中的類定義為單例,那么確保該類的唯一方法就是也使用Singleton模式實(shí)現(xiàn)該類。這樣可以確保只有一個(gè)實(shí)例,無論人們使用Spring獲取實(shí)例還是繞過Spring。


查看完整回答
反對 回復(fù) 2019-10-08
?
慕田峪7331174

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超13個(gè)贊

在Spring中,Singleton作用域意味著該bean將僅由Spring實(shí)例化一次。與原型范圍(每次都有新實(shí)例)相反,請求范圍(每個(gè)請求一次),會話范圍(每個(gè)HTTP會話一次)。

從技術(shù)上講,單例范圍與單例設(shè)計(jì)模式有關(guān)。您無需將bean實(shí)施為單例即可將它們放入單例范圍。


查看完整回答
反對 回復(fù) 2019-10-08
  • 4 回答
  • 0 關(guān)注
  • 720 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號