私は異なるタイプのいくつかのオブジェクトに注入したいオブジェクトを持っています。このオブジェクトは同じでなければならない:JBoss Weld:コンテキストに応じて注入されたインスタンスを切り替え、複数のBeanにインスタンスを挿入します。
class A {}
class B {@Inject A a;}
class C {@Inject A a;}
class D {@Inject A a;}
タイプBのオブジェクトの間で共有されなければならない場合、C、D
また、IはAのインスタンスを切り替えることができる必要がありますそれらのオブジェクトでは、それを破壊することはありません。私はさらに、Aのすべてのインスタンスをコンテナに保持できる必要があります。 Aの各インスタンスはドキュメントに関連しており、アプリケーションはn個のドキュメントで作業することができます(同じ時間ではなく、それぞれのドキュメントを切り替えることができるはずです)。ユーザが別のドキュメントを選択すると、Aの対応するインスタンスがB、C、Dのインスタンスの前のインスタンスに置き換わるはずです。
JBoss Weldで簡単に行う方法はありますか?
解決策の別のアイデアがあります(ドキュメント選択に反応し、必要に応じてAのインスタンスを置き換えるシングルトンマネージャを使用しています)が、このソリューションは本当にきれいではありません。
class A {}
class AManager{A currentA;}
class B {@Inject AManager manager;}
class C {@Inject AManager manager;}
class D {@Inject AManager manager;}
とコンテキストに応じて、マネージャにcurrentAを切り替える:たぶん私は...私はマネージャーを使用しての代わりに、直接のような、Aを使用していた見つけ