我正在尝试将BoneCP作为 DBCP 的连接池替代方案。我将其添加bonecp-0.8.0rc-1.jar
到我的运行时类路径中,并将代码从他们的示例页面复制粘贴到我的测试驱动程序中:
Connection connection = null;
BoneCP connectionPool;
try {
Class.forName(config.getDatabaseLogger().getJDBCDriver());
BoneCPConfig boneConfig = configureBoneCP(config);
connectionPool = new BoneCP(boneConfig);
connection = connectionPool.getConnection(); // fetch a connection
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
在上面写着:
connectionPool = new BoneCP(boneConfig);
Eclipse (Juno) 给了我一个编译器警告:
资源泄漏:“connectionPool”永远不会关闭
然后它给了我一个“将@SuppressWarnings 'resource' 添加到newConnectionManager ”的选项(newConnectionManager()
引用包含在其中的类)。
这怎么可能?!?!Eclipse 如何知道BoneCP
对象的任何信息,以及它如何知道它必须被关闭?这是 BoneCP 库附带的某种“自定义警告”吗?如果是这样,我如何向自己的项目添加/注释代码以帮助警告下游开发人员他们没有正确使用我的库?提前致谢!