[英]Binding A HashMap Instance In Guice
I have a method that returns a Map(): 我有一个返回Map()的方法:
private Map<String, Catalog> readCatalogFromXml(String xmlFile) {
// blah blah read XML via DOM
}
However, I need to bind the results of that call to a single instance to be injected into multiple classes. 但是,我需要将该调用的结果绑定到单个实例,以注入到多个类中。 I've been looking over the docs for MapBinder but am confused.
我一直在寻找MapBinder的文档,但感到困惑。 I'm probably missing something simple, can anyone assist?
我可能缺少简单的东西,有人可以协助吗?
Jason 杰森
Just implement a provider in your Module class: 只需在Module类中实现提供程序:
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);
}
}
If you just need the returned Map injected, I would ... 如果您只需要注入返回的Map,我将...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.