シングルトン スコープの依存関係を、逆シリアル化された後、プロトタイプの Spring Bean に再注入したいと考えています。
リポジトリ Bean に依存する Process Bean があるとします。リポジトリ Bean はシングルトンとしてスコープされますが、プロセス Bean はプロトタイプ スコープです。定期的にプロセスをシリアル化し、後で逆シリアル化します。
class Process {
private Repository repository;
// getters, setters, etc.
}
リポジトリをシリアライズおよびデシリアライズしたくありません。また、プロセス内の参照を保持するメンバー変数、ある種のプロキシへの参照、またはリポジトリとして宣言されたプレーンな古いメンバー変数以外のものに「一時的」を配置したくありません。
私が欲しいと思うのは、プロセスがその依存関係を、(一時的な参照を使用して) リポジトリを指すシリアライズ可能なプロキシで満たすことであり、デシリアライズ時にリポジトリを再び見つけることができるということです。それを行うためにSpringをどのようにカスタマイズできますか?
のように、プロキシを使用して依存関係の参照を保持できると思います。その正確なテクニックを使用できればいいのにと思います。しかし、Spring が生成するのを見たプロキシはシリアライズ可能ではなく、ドキュメントによると、それをシングルトン Bean で使用すると例外が発生します。
おそらく、カスタム スコープの Bean を要求されたときに常にプロキシを提供するカスタム スコープをシングルトン Bean で使用できます。それは良い考えですか?他のアイデア?