我想在我的gwt應用程序中添加dagger2來使用DI。到目前爲止我按照以下步驟如何將dagger2整合到GWT應用程序中?
1)增加了以下依賴性在pom.xml
<dependency>
<groupId>com.google.dagger</groupId>
<artifactId>dagger-gwt</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>com.google.dagger</groupId>
<artifactId>dagger-compiler</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>com.google.auto.factory</groupId>
<artifactId>auto-factory</artifactId>
<version>1.0-beta3</version>
</dependency>
2)加入的代碼下面的行中的繼承GWT模塊MyApp.gwt.xml
匕首依賴性。
<inherits name="dagger.Dagger" />
3)創建組件類。
import javax.inject.Singleton;
import com.google.gwt.event.shared.EventBus;
import dagger.Component;
@Singleton
@Component(modules = AppModule.class)
public interface AppComponent {
EventBus eventBus();
}
4)創建的模塊類
import javax.inject.Singleton;
import com.google.gwt.event.shared.EventBus;
import com.google.gwt.event.shared.SimpleEventBus;
import dagger.Module;
import dagger.Provides;
@Module
public class AppModule {
@Provides
@Singleton
SimpleEventBus provideSimpleEventBus() {
return new SimpleEventBus();
}
@Provides
EventBus provideEventBus(SimpleEventBus bus) {
return bus;
}
}
最後,當我試圖在AppEntryPoint
AppComponent component = DaggerAppComponent.builder()....build();
構建模塊,我無法找到生成的類DaggerAppComponent
mvn compile
或mvn gwt:compile
之後的任意位置。我從org.codehaus.mojo
使用gwt-maven-plugin
。它清楚我缺少配置中的東西,但無法弄清楚究竟是什麼。
全設置你告訴我們,'AppComponent',說實在找不到'DaggerChatComponent' ....你是混合的2嗎? –
錯字,現在修復並更新。 – Ajax
是否生成任何源文件? –