Session
リクエストごとにHibernateを開き、最後に閉じようとしています。
これはうまくいくように見えますが、私は今、自分のSession
オブジェクトをどのように入れるべきかを理解してThreadLocal
おり、答えはそれを説明していません。
これを行うためのStruts2固有の方法はありますか?
Struts2サーブレットの前にあるHttpFilterを追加できます。フィルタ内:
public class SessionProviderFilter implements Filter {
private static ThreadLocal<Session> sessionStore = new ThreadLocal<Session>();
public void doFilter(...) {
Session session = ... // get the session
sessionStore.set(session);
chain.doFilter(...);
sessionStore.set(null);
}
public static Session getCurrentSession() {
return sessionStore.get();
}
}
これで、任意のコードから、現在の休止状態セッションを取得するために、SessionProviderFilter.getCurrentSession()を呼び出します。