【问题标题】:Expose Map from guice private Module从 guice 私有模块中公开地图
【发布时间】:2021-05-04 18:02:58
【问题描述】:

我正在尝试从类似于 Expose Map in private guice module 的私有模块公开地图,但出现错误

无法expose() 使用@com.google.inject.name.Named(value=myMap) 注释的java.util.Map,它必须显式绑定。

我已经写了这段代码:

expose(Map.class).annotatedWith(Names.named(myMap));

@Named("myMap")
@Provides
@Singleton
public Map<String, String> myMap() {
    // myMap
    return ImmutableMap.<String, String>builder()
            .build();
}

在我正在注入它的另一个类中,它给出了:

没有绑定 java.util.Map 的实现。

请检查。谢谢

【问题讨论】:

    标签: java guice inject


    【解决方案1】:

    为此,Guice 提供了multibinders,特别是对于您的情况,MapBinder 在其 Javadoc 中提供了一个很好的代码示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-27
      • 2021-06-04
      • 2019-09-13
      • 2011-07-26
      • 1970-01-01
      相关资源
      最近更新 更多