[英]How to enforce release of resources?
我有一个名为Parameter的类,该类包装了包括java.sql.Clob
在内的不同值
使用JDBC4规范,我们可以使用free()
方法来释放分配给Clob
对象的资源。 我正在考虑使Parameter
类成为AutoClosable
并在close()
内调用free()
方法
这样做效果很好,但我也想要执行某些操作,或者至少暗示其他Parameter
是AutoClosable
的实例
除了文档之外,还有其他方法可以实现吗? 基本上,我正在寻找在这种情况下可以做的其他事情。
通常的方法是实现具有可配置超时的ObjectPool
。 开始时,从拍摄物体计数ObjectPool
,并检查它是否在超时结束返回到池中。 如果没有将Object
返回池,则抛出异常或强行释放该Object
保留的资源。 这样,您将迫使程序员调用close()
方法或检测泄漏。
大多数数据库连接池库都具有此功能。 检查JDBCConnectionPool-InactiveConnectionTimeoutSeconds和Apache Commons Pool-AbandonedConfig
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.