私は依存関係を注入するためにguiceを使用しています。guiceプロバイダでguice injectorを使用する方法は?
私はこのプロバイダを持っている:それは、プロバイダでいたときに
public class RequestUrlRepository implements Provider<IRequestUrlRepository> {
@Singleton
@Override
public IRequestUrlRepository get() {
IRequestUrlRepository answer = null;
if (System.getProperty("").equals(RouteOrCostRequest.cost.toString())){
answer = new CostRequestUrlRepository(...);
}
else
{
answer = new RoutingRequestUrlRepository(...);
}
return answer;
}
}
は、どのように私はnew CostRequestUrlRepository(...);
とnew RoutingRequestUrlRepository(...)
を埋めるためにGuiceのインジェクタを使用することができますか?
できない場合は、手動ですべてのctorのパラメータを作成せずにどのように初期化できますか?
私は 'costRepository'と' routingRepository'を初期化して、 'IRequestUrlRepository'インターフェースを満たすと思っています。私はプロバイダをそれぞれに書くべきだとは思わない –
'X'、' Provider '、' @Provides X'へのバインディングの場合、Guiceは自動的にプロバイダを作成するか 'provider.get()'を自動的に呼び出します。リポジトリ用に独自のプロバイダを作成する必要はありません。 –