1

ユーザーセッション全体で現在のユーザーインスタンスをキャッシュして、ユーザーアクセスサービスにアクセスし、データベースからユーザーデータを何度も取得しなくても、サービスが自由にアクセスできるようにするにはどうすればよいですか。

Springがスコープ付きBeanの概念(セッションごと、リクエストごとなど)をサポートしていることは知っていますが、正直言って、実際に使用したことはないので、誰かが道を教えてくれたらとてもありがたいです。

この種のセッションスコープがスレッドセーフであることを強く期待しています。

4

2 に答える 2

2

春はすべての解決策ではありません。HttpSessionが必要です。また、セッション スコープはスレッドセーフではありません

于 2012-02-01T13:10:17.730 に答える
0

Spring Security を使用する場合は、強化された UsersDetails オブジェクトの使用を検討できます。

-- これが有用かどうかを判断する必要があるのは、(自分のユースケースしか知らないため) あなただけです。


セッション スコープの Spring オブジェクトに関する質問に答えるには:

例については、 Spring Reference Chapter 3.11.4.4 Specifying bean scopeおよび Chapter 3.4 を参照してください。スコープの概要については Bean スコープ (その章内のセッションへのリンクが間違っていることに注意してください)。

そして、Spring Session Scoped Beans にはそのリスナーが必要であることに注意してください。

<listener>
   <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
 </listener>

IHO: Spring セッション Bean を使用するか、HTTP セッションを直接使用するかは、そのセッション スコープのデータで何をするかによって異なります。たとえば、サービス層内のさまざまな場所でそのデータが必要な場合、HTTP セッションはあまり適切なソリューションではない可能性があります。

于 2012-02-01T13:53:31.793 に答える