豆类有时间生活

时间:2016-07-23 21:07:58

标签: java spring spring-bean

对于长寿命的bean,即singleton和prototype,有没有办法在Bean的destroyMethod调用结束时指定生命周期?在我看来,寿命被定义为豆子理想而不使用的一段时间。

如果没有这样的话,有什么方法可以模拟这个吗?也许还有其他一些图书馆!

[UPDATE]

将以下场景视为用例:

那里有各种各样的资源池可能会在一段时间内经常使用,然后它们就会过时了。最着名的此类资源之一是数据库连接。

对于可能连接到多个数据库的软件,随着时间的推移,每个连接都有不可预测的需求。在这种情况下,连接池可以帮助我们不要关闭和重新建立数据库连接,因为这是一个昂贵的过程。并且他们通过保持连接打开一段时间来这样做,如果在那段时间内有需求,则重置连接的到期日期。

此方案可应用于任何只有在需要时才应保留在内存中的资源。当然,一旦资源过期,它应该被踢出内存。此时,任何新的需求都应该在资源再次过期之前重新生成。

1 个答案:

答案 0 :(得分:0)

即使没有这样的事情,但我遇到了另一种能够完美解决这个问题的解决方案。

我的解决方案是定义一个返回缓存的单例bean。缓存对象为您提供生存时间功能,而不是bean。当然,如果您需要按用户使用缓存,则可以将bean设置为session而不是singleton。

我最终使用了com.google.common.cache.*