2017-01-25 1 views
0

次のマップバインダーは私にcom.google.inject.OutOfScopeExceptionを与える:私はフェラーリのコンストラクタが@でアノテートされたオブジェクトに依存しているので、これはおそらく推測していGuiceでは、スコープ依存性の異なるマップバインダーシングルトンバインディングを作成する方法は?結合

mapbinder.addBinding("ferrari").to(Ferrari.class).in(Singleton.class); 

を:未MyScopeにMyScope。このような場合、どうやってフェラーリシングルトンを作ることができますか?

私は(how to create an object from a different scope)異なるスコープのオブジェクトを作成することを知っています、我々はプロバイダが必要です。その場合、フェラーリの同じメソッドを返すように、私はフェラーリプロバイダのgetメソッドに何を書き込むべきですか?別の範囲にあるオブジェクトに依存するフェラーリ・シングルトンをどのように作成しなければなりませんか?

答えて

0

プロバイダにシングルトンアノテーションを追加し、getメソッドの返される結果をフィールドにキャッシュして返します。したがって、プロバイダが呼び出されるたびに、同じオブジェクトが返されます。プロバイダのスコープに関係なく依存関係を注入することもできます。

関連する問題