亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

spring中配置的bean是單例么?如何證明

spring中配置的bean是單例么?如何證明

千萬里不及你 2019-03-21 23:19:32
比如,在spring的配置文件中,配置了如下的bean。<bean id = "privilegeRoleBo"     class = "com.alibaba.tboss.biz.privilege.impl.PrivilegeRoleBoImpl"></bean>上面的bean應該不是單例的,因為如果項目部署在集群上,集群的每臺機器上都維護著一個名字為privilegeRoleBo的bean吧,這樣的話,privilegeRoleBo這個bean就不是單例的吧?如果我要配置一個單例的bean,該如何配置呢?另外,如何寫一個小Demo,可以驗證一下當前的bean是否是單例??
查看完整描述

4 回答

?
慕標5832272

TA貢獻1966條經驗 獲得超4個贊

樓上回答是正確的,Java 的單例必須限定在一個 JVM 中,就像是 Servlet 只會存在一個實例這句話也是限定在一個 JVM 中的,如果是多個 JVM 就會每個 JVM 存在一個實例。實際上,對于很多情況來說,實例不能在多個 JVM 上互相遷移不存在很大的問題,比如數據庫連接或者是只讀的配置文件信息類。但是如果想要多 JVM 同步,則必須使用其他的方法,比如文件鎖、分布協調服務等等。打個比方,HttpSession 對象則是采用了 JVM 遷移的方式進行同步的。

查看完整回答
反對 回復 2019-04-23
?
牛魔王的故事

TA貢獻1830條經驗 獲得超3個贊

java語言層面的單例說的是同一個jvm里面,集群沒辦法搞。如果你想設置的單例目的是為了數據共享,那數據存數據庫或是redis之類的地方


查看完整回答
反對 回復 2019-04-23
?
MYYA

TA貢獻1868條經驗 獲得超4個贊

集群單例的問題樓上已經說了,我說說怎么驗證當前的bean是否是單例,你可以在把項目跑起來 開debug模式,發送兩次請求,查看使用的privilegeRoleBo這個bean的地址是不是一樣的,如果一樣就是單例的


查看完整回答
反對 回復 2019-04-23
?
慕碼人8056858

TA貢獻1803條經驗 獲得超6個贊

bean有一個屬性scope


查看完整回答
反對 回復 2019-04-23
  • 4 回答
  • 0 關注
  • 614 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號