我正在使用guice来注入依赖。
我有一个提供者:
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;
}
}
我该如何使用Guice注入器来填充new CostRequestUrlRepository(...);
和new RoutingRequestUrlRepository(...)
,当它们在提供程序中时?
如果不可能,那么我该如何初始化它们而不是手动创建所有构造函数参数?
costRepository
和routingRepository
来填充接口IRequestUrlRepository
。我认为不需要为它们中的每一个编写提供程序。 - Elad Benda2X
,Provider<X>
或@Provides X
的情况,Guice 将自动创建 Provider,并自动调用provider.get()
。无需为存储库编写自己的 Providers。 - Jeff Bowman