Guice将抽象基类绑定到具体类

时间:2014-08-25 19:11:30

标签: java guice

我有一个带有以下绑定的模块

bind(BaseAbstract.class).to(Concrete.class).in(Scopes.SINGLETON);
bind(Concrete.class).toProvider(.....);

当我要求Guice为我提供两个类时,一个需要base,一个需要Concrete,创建两个单独的Concrete对象。

injector.getInstance(INeedABaseAbstract.class);
injector.getInstance(INeedAConcrete.class);

我只想要一次Guice将给需要BaseAbstract或Concrete的类的单个Concrete实例。

1 个答案:

答案 0 :(得分:5)

您将BaseAbstract绑定为Singleton而不是Concrete。试试这个:

bind(BaseAbstract.class).to(Concrete.class);
bind(Concrete.class).toProvider(ConcreteProvider.class).in(Scopes.SINGLETON);