我有一个返回一个Map()的方法:绑定一个HashMap实例在吉斯
private Map<String, Catalog> readCatalogFromXml(String xmlFile) {
// blah blah read XML via DOM
}
然而,我需要该调用的结果绑定到单个实例被注入到多个类。我一直在查看MapBinder的文档,但很困惑。我可能错过了简单的东西,任何人都可以协助?
杰森
我有一个返回一个Map()的方法:绑定一个HashMap实例在吉斯
private Map<String, Catalog> readCatalogFromXml(String xmlFile) {
// blah blah read XML via DOM
}
然而,我需要该调用的结果绑定到单个实例被注入到多个类。我一直在查看MapBinder的文档,但很困惑。我可能错过了简单的东西,任何人都可以协助?
杰森
如果你只需要返回的地图注入,我会......
就实现你的模块类提供商:
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注解。 – 2011-12-20 04:01:05
@Darren谢谢,我只是一个Guice Newbie,所以不知道Singleton注释。我会添加这个。 – helpermethod 2011-12-20 09:53:08
...或者他在打字时所说的话... – pal 2011-12-19 17:42:09