DBCPに代わる接続プーリングとしてBoneCPを試しています。をランタイム クラスパスに追加し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 ライブラリに同梱されている「カスタム警告」のようなものですか? もしそうなら、自分のプロジェクトにコードを追加/注釈を付けて、下流の開発者が私のライブラリを正しく使用していないことを警告するにはどうすればよいですか? 前もって感謝します!