如果我理解你的評論權限,我會建議你不需要包裝器,而是一個通過GWT模塊提供功能的庫(請參閱here)。每個模塊都可以使用GWTP和DI,但沒有Ginjector。您寧願在您配置模塊依賴關係的地方提供杜松子酒模塊。在您的應用程序中創建了注射器,您只需安裝庫的杜松子酒模塊。
!!!別忘了:使用GWTP時,服務器端也有DI,功能完全相同。
客戶端示例。考慮我們有兩個讓我們說的組成部分是一些頁面的組合等P1和P2。然後創建兩個帶有模塊配置的GWT模塊,如P1.gwt.xml和P2.gwt.xml。每個這些模塊都有一個GinModule,例如
public class P1GinModule extends AbstractGinModule {
@Override
protected void configure() {
// bind your presenters, views, etc..
}
}
在你的應用程序A1你,你安裝你想要的模塊,在這種情況下P1GinModule和P2GinModule創建杜松子酒配置
public class A1GinModule extends AbstractGinModule {
@Override
protected void configure() {
install(new P1GinModule());
install(new P2GinModule());
}
}
你ginjector那麼應該是這樣的:
@GinModules(A1GinModule.class)
public interface AppInjector extends Ginjector {
// what ever you need ...
}
注意:在你的appliations配置中,假設A1.gwt.xml,不要忘記繼承兩個GWT模塊。
通過這種方法,您可以將所有依賴注入工作於不同的模塊,這些模塊在庫中推出並通過GWT模塊提供。
希望有幫助。
你的用例究竟是什麼?你想能夠自己運行這些獨立的項目嗎? –
對不起,我剛剛看過評論。 我的想法是創建多個模塊M_1,...,M_n,每個模塊包含一個注射器和一些頁面。然後我想創建一個包含我的模塊子集的包裝項目。所以,如果我想從M_i中向/從應用程序中添加/刪除功能,我只需要在包裝中添加/刪除M_i(加上像更改包裝器投影儀繼承的小改動)。 最初我遇到了依賴問題和ginjectors的結構問題,但後來我設法解決了這個問題,我將盡快發佈ginjectors的結構。 – simo