我有一個將在應用程序中的多個UI模塊中使用的UI組件。如何讓Guice將帶註釋的注入綁定到單個實例
我想註釋在一個UI模塊中注入到其他幾個類的UI組件是單例,而不是整個應用程序中的單例。爲了使每個UI模塊使用UI組件,使用了一個且僅有一個UI組件實例。
我從Guice文檔找不到這個直接的解決方案。所以我想也許我可以使用註釋區分這些實例? 在模塊A中說,我用Named("ModuleA")
註釋了UI組件的所有注入;並在模塊B中使用Named("ModulaB")
。而在配置上,我試圖用這樣的:
this.bind(UIComponentA.class)
.annotatedWith(Names.named("ModulaA"))
.to(UIComponentAImpl.class).in(Singleton.class);
this.bind(UIComponentA.class)
.annotatedWith(Names.named("ModulaB"))
.to(UIComponentAImpl.class).in(Singleton.class);
因爲UICompoenetAImpl還需要注入,所以我不能簡單地創建實例那裏。完全不知道這是否有效。
我想知道完成此操作的標準方法是什麼?
感謝您的答案,但正如我所說的UICompoenentAImpl也有依賴性,需要由Guice注入。 – Wudong 2012-03-06 12:11:15
如果你手動創建UICompoenentAImpl並通過bind(...)。toInstance()把它添加到guice容器中,你是否檢查過這些依賴項沒有被注入?什麼樣的依賴關係? – 2012-03-06 13:13:59
不幸的是它有幾個依賴關係,也需要由Guice注入。手動創建實例將非常麻煩。 – Wudong 2012-03-06 14:07:26