从 guice 私有模块公开地图
Expose Map from guice private Module
我正在尝试从类似于 Expose Map in private guice module 的私有模块公开地图,但出现错误
无法使用 @com.google.inject.name.Named(value=myMap) 注释的 expose() 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();
}
同样在我注射它的另一个 class 中,它给出了:
未绑定 java.util.Map 的实现。
请检查。谢谢
为此 Guice 提供了 multibinders and, in particular, for your case, MapBinder,它在其 Javadoc 中提供了一个很好的代码示例。
我正在尝试从类似于 Expose Map in private guice module 的私有模块公开地图,但出现错误
无法使用 @com.google.inject.name.Named(value=myMap) 注释的 expose() 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();
}
同样在我注射它的另一个 class 中,它给出了:
未绑定 java.util.Map
请检查。谢谢
为此 Guice 提供了 multibinders and, in particular, for your case, MapBinder,它在其 Javadoc 中提供了一个很好的代码示例。