私の Web アプリケーションは ActiveJDBC を使用しています。この ORM フレームワークでは、新しいスレッドごとに新しい DB 接続を開く必要があります (もちろん、スレッドが終了したら閉じます)。これを実現する最善の方法は、Web フィルターを使用することではないかと考えています。
この場合、どこに電話すればよいBase.open()
ですか? オプションはinit()
またはdoFilter()
です。また、 を呼び出す予定がある場合Base.close()
は、それが正常か異常かにかかわらず、常にスレッドの終了時にdestroy()
実際に呼び出されることを知る必要があります。destroy()
EDIT:サーブレットフィルターについて読んだ後、適切な処理は接続を開いたり閉じたりすることだと思いますdoFilter()
:
public void doFilter(final ServletRequest request, final ServletResponse response, FilterChain chain) throws IOException, ServletException {
Base.open();
chain.doFilter(request,wrapper);
Base.close();
}
これは正しい方法ですか?