Java 在Guice中绑定HashMap实例
我有一个返回映射的方法:Java 在Guice中绑定HashMap实例,java,guice,Java,Guice,我有一个返回映射的方法: private Map<String, Catalog> readCatalogFromXml(String xmlFile) { // blah blah read XML via DOM } 但是,我需要将该调用的结果绑定到一个实例,以便注入到多个类中。我一直在看MapBinder的文档,但我很困惑。我可能错过了一些简单的事情,有人能帮忙吗 Jason只需在模块类中实现一个提供程序: public class ModuleImpl extend
private Map<String, Catalog> readCatalogFromXml(String xmlFile) {
// blah blah read XML via DOM
}
但是,我需要将该调用的结果绑定到一个实例,以便注入到多个类中。我一直在看MapBinder的文档,但我很困惑。我可能错过了一些简单的事情,有人能帮忙吗
Jason只需在模块类中实现一个提供程序:
public class ModuleImpl extends AbstractModule {
@Override
protected void configure() {
// bind whatever needed
}
@Singleton
@Provides
Map<String, Catalog> provideMap(@XMLFile String xmlFile) {
// create an instance of your class
return myClass.readCatalogFromXml(xmlFile);
}
}
如果你只需要注射返回的地图,我会 定义一个子类@Singleton公共类MyInjectedMap扩展HashMap{} 绑定提供程序
在文档中搜索提供程序方法以获取更多此类示例。如果需要,提供程序方法可以使用@Singleton注释。@Darren谢谢,我只是个Guice新手,所以不知道Singleton注释。我要补充一点。晚会晚了,我们怎样才能提供渴望单身的Map?