第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

有一個疑問:@Scope的變化導致控制臺輸出的變化,這說明了什么?(單元測試方法始終沒變,最后一張圖)

572d7f250001259105000300.jpg

572d7f2a0001453605000296.jpg

572d7f2b0001d94b05000271.jpg

572d7f2c000103cb05000269.jpg

最后一張圖是單元測試方法,始終沒變。改變的是@Scope的屬性值,隨之改變的是控制臺輸出的結(jié)果,請問為什么把作用域變成prototype,控制臺就沒有bean的銷毀信息了?為什么加了代理,初始化信息和銷毀信息都不見了?

跪求大神,大牛幫忙說一下。

正在回答

3 回答

prototype 作用域和singleton不一樣,prototype不會自動銷毀對象,同一個容器中每次請求都會創(chuàng)建新的對象。你在prototype的注解的時候,在手動關閉容器。即可輸出。 加一句 ctx.registerShutdownHook(); 即可手動關閉容器銷毀對象,這樣就能執(zhí)行到destroy的方法

0 回復 有任何疑惑可以回復我~
#1

hiberk

這里的ctx 等同于你的那個stringStroe,在你測試方法那里加上 stringStroe.registerShutdownHook();
2016-05-08 回復 有任何疑惑可以回復我~
#2

java家洼 提問者

非常感謝!
2016-05-08 回復 有任何疑惑可以回復我~

首先,關于對象回收機制,Java有自己的一套算法。一般是當對象不被使用(手動關閉,或者超過一段時間未使用。因為Java回收機制會以一個時間段掃描)就自動回收;另外,單例和靜態(tài)在某種程度上是一樣的。spring容器可以創(chuàng)建多個,一個容器里面又可以生成多個對象,如果你理解為靜態(tài),那么同一個容器的對象是一樣的。但是不同容器之間的對象就不一樣了(內(nèi)存地址不一樣),所以你這么理解也可以,那么就是靜態(tài)類部類那種形式了。但是單例最主要的是的作用是線程安全!你可以看看單例模式的Java代碼

0 回復 有任何疑惑可以回復我~
#1

java家洼 提問者

感謝你的耐心回答,謝謝。
2016-05-11 回復 有任何疑惑可以回復我~

另外我有我自己的理解:我覺得scope=prototype的時候,創(chuàng)建的對象不會隨著容器的關閉而被銷毀,這些對象是垃圾回收器隨機銷毀的吧?另外我把單例理解為static的,是和容器生死相隨的。即容器被創(chuàng)建就有單例,容器關閉,單例就被銷毀。我的理解不知道對不對?

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

有一個疑問:@Scope的變化導致控制臺輸出的變化,這說明了什么?(單元測試方法始終沒變,最后一張圖)

我要回答 關注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號