1. 程式人生 > >Spring中Bean的scope的singleton和prototype使用場景

Spring中Bean的scope的singleton和prototype使用場景

引用
也不是很清楚,但是在debug的時候,看到的是scope為singleton的會在啟動伺服器是例項化,而prototype是在請求的時候再例項化 


其實是這樣的,如果一個bean是prototype的,並且這個bean要被注入到其它bean或者你通過getBean這樣的方式獲得這個bean的時候,spring容器會建立一個新的例項給你。 

singleton模式指的是對某個物件的完全共享,包括程式碼空間和資料空間,也就是說,singleton會讓所有執行緒共享他的成員變數。prototype則不會這樣。 

此外singleton的生命週期由容器來管理,但是prototype的生命週期得你自己管理。 


最後,有個小trick,singleton的bean引用一個prototype的bean時會出現問題,因為singleton只初始化一次,但prototype每請求一次都會有一個新的物件,但prototype型別的bean是singleton型別bean的一個屬性,所以不可能有新prototpye的bean產生