Gwt Gin未找到@Provides方法
这是我的Gin模块:Gwt Gin未找到@Provides方法,gwt,dependency-injection,gwt-gin,Gwt,Dependency Injection,Gwt Gin,这是我的Gin模块: public class FooGinModule extends AbstractGinModule { @Override protected void configure() { ... bind(ActivityManager.class).asEagerSingleton(); ... } @Provides @Singleton public ActivityManager getActivityManag
public class FooGinModule extends AbstractGinModule {
@Override
protected void configure() {
...
bind(ActivityManager.class).asEagerSingleton();
...
}
@Provides
@Singleton
public ActivityManager getActivityManager(EventBus eventBus, SimplePanel display,
ActivityMapper activityMapper) {
final ActivityManager activityManager = new ActivityManager(activityMapper, eventBus);
activityManager.setDisplay(display);
return activityManager;
}
}
尝试gwt编译时,出现以下错误:
[错误]未找到类的@Inject或默认构造函数
com.google.gwt.activity.shared.ActivityManager
我指定的
@Provides
方法是否错误?您不需要显式绑定,事实上我认为它将覆盖@Provides
方法。我不知道使用<代码> ASEIGER SUNLITON()/<代码> > < <代码> > />代码>方法,而不是考虑<代码>提供程序< /Cult>实现。
bind(ActivityManager.class)
.toProvider(MyActivityManagerProvider.class)
.asEagerSingleton();
查看您正在生成/连接的实际内容,我发现将@ActivityManager
实例实际注入SimplePanel
的父对象(或您正在用作显示器的任何对象)并在那里调用setDisplay
非常有用。至少对我来说,这样可以更容易地更换或更改显示器,因为它是代码块的一部分,而不是模块的一部分。它还消除了创建渴望的单例的需要