我的代码很奇怪,但是我相信您可以帮助我!我正在使用Guice
,并且我有类似的内容。
@Override
protected void configure() {
MapBinder<String, Foo> mapBinder = MapBinder.newMapBinder(binder(), String.class, Foo.class);
mapBinder.addBinding("key1").toProvider(() -> new FooImpl(parameter1));
mapBinder.addBinding("key2").toProvider(() -> new FooImpl(parameter2));
}
现在我的问题是FooImpl
不仅具有为每个键指定特定参数的构造函数,而且在类内部也有@Inject
public class FooImpl {
private Object parameter;
@Inject
private SomeClass someClass
public FooImpl(Object parameter) {
this.parameter = parameter;
}
}
在我的示例中发生了什么? @Inject
不起作用
如果我愿意mapBinder
mapBinder.addBinding("key2").toInstance(new FooImpl(parameter2));
它可以工作,但是每次我都使用相同的FooImpl
实例,由于并发,它可能给我带来一些问题。
如果有人可以帮助我解决我几天来遇到的困扰,我将非常感激。