似乎 Guice 忽略了我的模块的 @Provider 方法。
我有一个像这样的 MyModule 类:
public class MyModule extends AbstractModule {
protected void configure() {
bindInterceptor(Matchers.any(), Matchers.annotatedWith(Timed.class), new GuiceEnabledLoggingInterceptor());
bind(OneClass.class).to(OneClassImpl.class);
// And more binding lines...
}
@Provides
public AnotherClassInApi provideMyClass() {
return AnotherClassInApi.getInstance();
}
// And more @Provides methods
}
主要方法是
public static void main(String[] args){
ConfigHandler.getInstance().loadConfigWhenNotRunningInsideMicrocontainer();
Injector INJECTOR = Guice.createInjector(new MyModule());
// ...
}
在项目的其他部分,我有类 AnotherClassInApi,这是一个非常标准的单例加一个方法:
public class AnotherClassInApi {
private static final AnotherClassInApi INSTANCE = new AnotherClassInApi();
private AnotherClassInApi() { }
// ... more methods
public static AnotherClassInApi getInstance() {
return INSTANCE;
}
}
好吧,我知道应该有效地将AnotherClassInApi 对象的任何请求绑定到getInstance() 方法,但它不起作用。有趣的是,调试时永远不会到达@Provide 方法中的断点,但会到达configure 方法中的断点。似乎 guice 忽略了我的提供者注释,我认为我完全按照 Guice 指南所说的 @Provider,所以我已经被卡住了。
我一直在谷歌搜索,但找不到类似的东西。任何帮助都感激不尽。
谢谢!