一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 淺談Spring單例Bean與單例模式的區別

淺談Spring單例Bean與單例模式的區別

2021-03-12 14:12蟻方陣 Java教程

這篇文章主要介紹了淺談Spring單例Bean與單例模式的區別,具有一定借鑒價值,需要的朋友可以參考下

Spring單例Bean單例模式的區別在于它們關聯的環境不一樣,單例模式是指在一個JVM進程中僅有一個實例,而Spring單例是指一個Spring Bean容器(ApplicationContext)中僅有一個實例。

首先看單例模式,在一個JVM進程中(理論上,一個運行的JAVA程序就必定有自己一個獨立的JVM)僅有一個實例,于是無論在程序中的何處獲取實例,始終都返回同一個對象,以Java內置的Runtime為例(現在枚舉是單例模式的最佳實踐),無論何時何處獲取,下面的判斷始終為真:

?
1
2
3
// 基于懶漢模式實現
// 在一個JVM實例中始終只有一個實例
Runtime.getRuntime() == Runtime.getRuntime()

與此相比,Spring的單例Bean是與其容器(ApplicationContext)密切相關的,所以在一個JVM進程中,如果有多個Spring容器,即使是單例bean,也一定會創建多個實例,代碼示例如下:

?
1
2
3
4
5
6
7
8
// 第一個Spring Bean容器
ApplicationContext context_1 = new FileSystemXmlApplicationContext("classpath:/ApplicationContext.xml");
Person yiifaa_1 = context_1.getBean("yiifaa", Person.class);
// 第二個Spring Bean容器
ApplicationContext context_2 = new FileSystemXmlApplicationContext("classpath:/ApplicationContext.xml");
Person yiifaa_2 = context_2.getBean("yiifaa", Person.class);
// 這里絕對不會相等,因為創建了多個實例
System.out.println(yiifaa_1 == yiifaa_2);

以下是Spring的配置文件:

?
1
2
3
4
5
6
<!-- 即使聲明了為單例,只要有多個容器,也一定會創建多個實例 -->
<bean id="yiifaa" class="com.stixu.anno.Person" scope="singleton">
  <constructor-arg name="username">
    <value>yiifaa</value>
  </constructor-arg>
</bean>

總結

Spring的單例bean與Spring bean管理容器密切相關,每個容器都會創建自己獨有的實例,所以與GOF設計模式中的單例模式相差極大,但在實際應用中,如果將對象的生命周期完全交給Spring管理(不在其他地方通過new、反射等方式創建),其實也能達到單例模式的效果。

以上就是本文關于淺談Spring單例Bean與單例模式的區別的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

原文鏈接:http://blog.csdn.net/yiifaa/article/details/74852425

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲aⅴ天堂 | 成人精品视频 成人影院 | 国产成人精品999在线 | 饭冈加奈子黑人解禁在线播放 | 热久久99精品这里有精品 | 日韩欧美一区二区三区四区 | 日本高清视频一区二区 | 全彩调教侵犯h本子全彩妖气he | 楚乔传第二部免费播放电视连续剧 | 亚洲天堂h| 经典三级四虎在线观看 | 国产老太婆hd老头 | 91久久偷偷做嫩草影院免费看 | 国偷盗摄自产福利一区在线 | 青青在线视频观看 | 国产成人综合精品 | 国产高清在线精品一区 | 国产精品久久久久一区二区三区 | 大ji巴好好爽好深网站 | 午夜亚洲福利 | 久久学生精品国产自在拍 | 网站久久 | 国产在线观看91 | 明星ai人脸替换脸忘忧草 | 久久精品国产免费 | 青青青国产精品国产精品久久久久 | 性俄罗斯xxxxxhd | 国产一区视频在线免费观看 | 视频国产精品 | 国产亚洲精品日韩香蕉网 | 男人叼女人的痛爽视频免费 | 公妇乱淫在线播放免费观看 | 亚洲国产视频网站 | 欧美另类xxx精品人妖 | 无人在线高清免费看 | 国产精品va在线观看无 | 5g影院天天影院天天爽影院网站 | 狠狠躁夜夜躁人人爽天天miya | 欧美伊人影院 | 国语视频高清在线观看 | 爽新片xxxxxxx |