0

我有一个名为 Parameter 的类,它包含不同的值,包括java.sql.Clob

使用 JDBC4 规范,我们free()可以调用一个方法来释放分配给Clob对象的资源。我正在考虑在里面制作ParameterAutoClosable和调用free()方法close()

这很好,但我也想要强制执行或至少暗示其他人ParameterAutoClosable

除了文档之外,还有其他方法可以实现这一点吗?基本上我正在寻找在这种情况下可以做的额外事情。

4

1 回答 1

1

通常的方法是实现一个ObjectPool可配置的超时。当对象被取出时开始计数,ObjectPool并检查它是否在超时结束时返回到池中。如果Object没有返回到池中,则抛出异常或强制释放Object正在保留的资源。这样,您将强制程序员调用close()方法或检测泄漏。

大多数数据库连接池库都具有此功能。检查JDBCConnectionPool - InactiveConnectionTimeoutSecondsApache Commons Pool - AbandonedConfig

于 2016-06-23T13:16:04.190 回答