これが私の質問です。私は、プロジェクトを実装するために顧客に提供するプラットフォームを作成しています。したがって、私のプラットフォームでは、、 、 などのSessionServiceメソッドを持つ を作成しました。春のセッションの前は、次のように見えました。getCurrentSessiongetAttributesetAttributegetCurrentMethod
@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つの方法は、コントローラーを呼び出すインターセプターを作成することです。これにより、現在のセッションがリポジトリーまたはサービスに設定されますか? これが正しい方法かどうかはわかりません。