java - Guice 将抽象基类绑定(bind)到具体类

标签 java guice

我有一个具有以下绑定(bind)的模块

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);

我只想要一个单一的 Concrete 实例,Guice 将它提供给需要 BaseAbstract 或 Concrete 的类。

最佳答案

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

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

关于java - Guice 将抽象基类绑定(bind)到具体类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25492831/

相关文章:

java - Guice 辅助注入(inject)多个构造函数总是调用默认构造函数

java - Guice - 字段注入(inject)限制

guice - 如何在 Quarkus 中引导 Guice Injector?

java - 日期的创建周期在列表中是连续的(它们之间相差一天)

java - 将@Configuration文件指向hbm.xml

java - 如何在注入(inject)过程中包含命令行参数?

gwt - GIN @Inject on variable for Rpc Services

java - 仅显示选定的 Log4j 调试语句

java - 为什么我的 CompareTo 会因一般契约(Contract)违规错误而崩溃?

java - 如何使用selenium webdriver java从标签内部获取文本?