确定哪些类型与guice依赖注入器绑定

时间:2013-09-06 12:41:55

标签: guice

有没有办法确定哪些类型与实现Module接口的类中的绑定器绑定或扩展AbstractModule类。我需要实现一个帮助器方法,它将某些类型与绑定器绑定,但此方法必须绑定的某些类型可能已经绑定到绑定器。有人知道当同一类型多次与活页夹绑定时会发生什么?

何时将类型绑定为单例?

1 个答案:

答案 0 :(得分:1)

更喜欢使用帮助程序来构建模块列表,而不是帮助绑定自己。

之后,您可以使用“Modules.combine(listOfModules)”函数删除重复模块定义:

Guice.createInjector(Modules.combine(listOfModules));

或者,当您构建“listOfModules”时,可以在将模块添加到列表中之前测试模块是否存在:

for (AbstractModule item : listOfModules) {
    if (moduleToAdd.getClass().isAssignableFrom(item.getClass())) {
        return listOfModules;
    }
}
modules.add(moduleToAdd);
return listOfModules;

问候!