2016-07-23 24 views
1

對於長壽的豆子,即單身和原型,有沒有一種方法可以指定一個生命週期,在這個生命週期的最後,豆子的destroyMethod被稱爲?在我看來,壽命被定義爲一個時間段,這段時間豆是理想的和不被使用的。有生存時間的豆子

如果沒有這樣的事情,有什麼辦法可以模擬這個嗎?也許還有其他的圖書館

[更新]

考慮以下情形作爲一個用例:

有資源各類游泳池在那裏它可能會在一段時間內被頻繁使用,然後他們就走出風格。最着名的這種資源之一是數據庫連接。

對於可能連接到多個數據庫軟件,有超過的時間每個連接的不可預知的需求。在恰當的情況下,連接池可以幫助我們不關閉和重新建立數據庫連接,因爲這是一個昂貴的過程。而且他們通過將連接保持打開一段時間,並且如果在那段時間有需求,連接的有效期將被重置。

這個場景可以應用於任何資源,只有在有需求時才應該保存在內存中。當然,一旦資源到期,它應該被踢出內存。此時,任何新的需求都應該在資源再次到期之前重新生成資源。

+0

我只是好奇 - 你的用例是什麼?當豆的消費者與它的工作,他應該檢查,如果它沒有過期,如果是創建一個新的,還是應該豆剛剛成爲失去作用的? – mszymborski

+0

@mszymborski我會將我的用例包括在幹 – Mehran

回答

0

即使有沒有這樣的事情,但我碰到的另一個解決方案,它完美地解決了這個問題就來了。

我的解決方案是定義一個返回緩存的單例bean。緩存對象爲您提供生存時間功能,而不是bean。當然,如果你需要你的緩存爲每個用戶,你可以將你的bean設置爲會話範圍而不是單例。

我結束了使用com.google.common.cache.*