これが私の質問です。私は、プロジェクトを実装するために顧客に提供するプラットフォームを作成しています。したがって、私のプラットフォームでは、、 、 などのSessionService
メソッドを持つ を作成しました。春のセッションの前は、次のように見えました。getCurrentSession
getAttribute
setAttribute
getCurrentMethod
@Override
public HttpSession getCurrentSession() {
if (this.session == null) {
final ServletRequestAttributes attr = (ServletRequestAttributes) RequestContextHolder.currentRequestAttributes();
return attr.getRequest().getSession(true); // true == allow create
}
return this.session;
}
見栄えが悪く、redisのような裏付けがありませんが、これは完全に正常に機能しました。に移行したいのですspring-session
が、を使用しSessionRepository
てユーザーの現在のセッションを見つけたいと思っていましたgetSession(String id)
が、そこにはしか表示されません。IDはCookieに保存されていると思うので、それを使用するには、おそらくHttpServletRequest
コントローラーからファサード、dbレイヤーに非常に近いサービスレイヤーにオブジェクトを渡す必要があります。これは私には非常に悪い考えのように見えるので、私の質問は次のようになります: currentSession を db レイヤーの近くに取得する方法はありますか? 私が考える1つの方法は、コントローラーを呼び出すインターセプターを作成することです。これにより、現在のセッションがリポジトリーまたはサービスに設定されますか? これが正しい方法かどうかはわかりません。