本文主要介紹springbean singleton和多個singleton(spring boot singleton bean),下面一起看看springbean singleton和多個singleton(spring boot singleton bean)相關(guān)資訊。
在spring中,bean可以定義為兩種模式:原型和單例。
singleton:只存在一個共享實例,對此bean的所有請求都將返回這個唯一的實例。
原型(多實例):對這個bean的每個請求都將創(chuàng)建一個新的bean實例,類似于new。
默認情況下,spring bean是單例模式。
結(jié)論:兩個變量指向一個對象。
將配置文件更改為:
結(jié)論:每次訪問一個bean,都會創(chuàng)建一個新的實例。
此外,如果您想要在springboot項目中配置一個或多個實例,您可以向相應(yīng)的bean添加一個annotation @scope。
spring bean是線程安全的無狀態(tài)bean,也就是說,線程中的操作不會對bean的成員執(zhí)行除查詢之外的操作,那么這個單例bean就是線程安全的。比如spring mvc的控制器、服務(wù)、dao,大多是無狀態(tài)的,只關(guān)注方法本身。
有狀態(tài)bean:有實例變量的對象,可以保存數(shù)據(jù),是線程安全的。
對于有狀態(tài)bean,spring官方提供的bean一般都會提供通過threadlocal解決線程安全的方法,比如requestcontextholder、transactionsynchronization manager、localecontextholder等。
blog . csdn . net/ _ 35860138/article/details/88798726
標簽:
線程實例
了解更多springbean singleton和多個singleton(spring boot singleton bean)相關(guān)內(nèi)容請關(guān)注本站點。