sping之bean物件生成兩種方式

2021-09-02 08:04:28 字數 488 閱讀 2553

bean的生成方式有兩種

1 通過應用程式上下文

載入配置檔案,根據配置bean建立bean物件,預設生成方式為singleton,呼叫配置檔案,即會立即生成物件

優點:一次生成所有管理的物件,在實際使用的時候,不用再去建立物件,效率快,

缺點:就算只用到了乙個物件,也會把所有物件都生成,佔記憶體,但現在硬體便宜,記憶體很大,所以不算太大問題。

其他配置方式:

prototype,不會立即生成物件,在真正使用的時候生成

request,針對web程式,每個request請求生成乙個物件

session 乙個會話期間

global session 類似應用容器整個生命週期

2 通過bean工廠,生成bean物件

生成bean工廠,不會立即生成工廠裡的bean物件,而是類似懶載入機制,真正使用物件的時候,才生成

優點:實時建立物件,節約記憶體

缺點:因為實時建立物件,效率相對慢

只允許物件生成於堆內

只允許物件生成於堆內?怎麼理解?腫麼辦?我們已經知道,假如手頭上有乙個類person,當你在程式中寫下person objtemp 時,編譯器悄悄地做了兩件事 呼叫constructor構造物件objtemp,而在彈棧時,呼叫析構函式destructor析構掉物件objtemp。物件rn的構造和析構...

迭代器和迭代物件 生成器

iterator 迭代器物件,必須要實現 next 魔法函式 iterable 可迭代物件,繼承 iterator,必須要實現 iter 魔法函式 迭代器 iterator 與可迭代物件 iterable 的區別 生成器生成器 函式中只要有 yield,這個函式就會變成生成器。每次執行到 yield...

巧用物件,生成不重複隨機數

有時候我們需要在一定範圍內生成一組不重複的隨機數組,我們可能會這樣做 需求 在乙個已知的陣列中,隨機選取一部分組成新的資料,要求陣列元素不重複出現 常規實現 var arr 3,5,30,20,21,50,80,6,8,10,15 去重一下,不去重,可能造成死迴圈 arr arr.filter fu...