spring為什么默認單例模式


單例bean的優勢

由於不會每次都新創建新對象所以有一下幾個性能上的優勢。
1、減少了新生成實例的消耗
新生成實例消耗包括兩方面,第一,spring會通過反射或者cglib來生成bean實例這都是耗性能的操作,其次給 對象分配內存也會涉及復雜算法。
2、減少jvm垃圾回收
由於不會給每個請求都新生成bean實例,所以自然回收的對象少了。
3、可以快速獲取到bean
因為單例的獲取bean操作除了第一次生成之外其余的都是從緩存里獲取的所以很快。

單例bean的劣勢

單例的bean一個很大的劣勢就是他不能做到線程安全!由於所有請求都共享一個bean實例,所以這個bean要是有狀態的一個bean的話可能在並發場景下出現問題,而原型的bean則不會有這樣問題(但也有例外,比如他被單例bean依賴),因為給每個請求都新創建實例。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM