我有一个名为 Parameter 的类,它包含不同的值,包括java.sql.Clob
使用 JDBC4 规范,我们free()
可以调用一个方法来释放分配给Clob
对象的资源。我正在考虑在里面制作Parameter
类AutoClosable
和调用free()
方法close()
这很好,但我也想要强制执行或至少暗示其他人Parameter
是AutoClosable
除了文档之外,还有其他方法可以实现这一点吗?基本上我正在寻找在这种情况下可以做的额外事情。
我有一个名为 Parameter 的类,它包含不同的值,包括java.sql.Clob
使用 JDBC4 规范,我们free()
可以调用一个方法来释放分配给Clob
对象的资源。我正在考虑在里面制作Parameter
类AutoClosable
和调用free()
方法close()
这很好,但我也想要强制执行或至少暗示其他人Parameter
是AutoClosable
除了文档之外,还有其他方法可以实现这一点吗?基本上我正在寻找在这种情况下可以做的额外事情。
通常的方法是实现一个ObjectPool
可配置的超时。当对象被取出时开始计数,ObjectPool
并检查它是否在超时结束时返回到池中。如果Object
没有返回到池中,则抛出异常或强制释放Object
正在保留的资源。这样,您将强制程序员调用close()
方法或检测泄漏。
大多数数据库连接池库都具有此功能。检查JDBCConnectionPool - InactiveConnectionTimeoutSeconds和Apache Commons Pool - AbandonedConfig