3

スコープ セッションを持つ Spring Bean があります。この Bean は、シリアライズできない別のシングルトン Bean への参照を保持します。セッション スコープの Bean をシリアル化する場合の最善の方法は何ですか?

同じ質問がすでにここで尋ねられています:シリアライゼーションに関して、Spring セッションスコープの Bean (コントローラー) とサービスへの参照

受け入れられた答えは次のとおりです。

[...]この問題は、現在のアプリケーション コンテキストからインスタンスを取得するシリアル化不可能な Bean のプロキシを提供することで、Spring 3.0 で解決されました。

リンクされたビデオのスピーカーを理解している限り、「うまくいく」はずです。しかし、私の場合はそうではありません!セッション スコープ Bean をシリアライズしようとすると、NotSerializableException.

どうすればこの問題を解決できますか?

4

2 に答える 2

1

Spring にそのプロキシを作成するように指示する必要があります。XML ベースの構成では、<aop:scoped-proxy/>タグを介して、component-scanモードでは注釈を介して:

@Scope(proxyMode = ScopedProxyMode.INTERFACES) 

コントローラークラスで。

于 2017-01-04T10:11:46.293 に答える
-2

シングルトン参照フィールドを としてマークすることができますtransient。次に、デシリアライズ後にメソッドを実行する方法を確認し、から参照をロードしますApplicationContext。また、スタックトレースを提供してください。

PS

セッションのパッシベーションを使用するのはあまり良い考えではありません。

于 2013-03-11T10:12:47.783 に答える