2009-01-15 42 views
3

我經常閱讀關於依賴注入的知識,並且我研究了Google,理論上它可以做什麼以及它是如何工作的,但我希望看到使用它的實際代碼庫(Java/guice將是首選)。使用依賴注入w/guice使用可瀏覽源的項目?

任何人都可以指向一個開源項目,我可以看到它是如何使用的?我認爲瀏覽代碼並看到整個設置比在網絡上找到的介紹性文章中的ususal片段更多。提前致謝!

回答

1

我知道你在Java-land中,但在.NET空間中有幾個使用控制容器反轉寫入的開源應用程序。檢出CodeCampServer,其中UI模塊沒有對依賴關係解析模塊的引用。有一個HttpModule可以完成這項工作。 (一個HttpModule只是一個外部庫,你可以插入它來處理ASP.NET中的事件,在CodeCampServer中,UI項目在運行時加載這個DependencyRegistrarModule,而沒有任何編譯時間參考)。

-1

我認爲如果使用得當,依賴注入有一種從視圖中消失的方法,它只是初始化/連接應用程序的一種方式 - 如果它看起來比您可能在尋找框架的額外功能而不是在裸機依賴注入。

編輯:我建議實際上開始使用它,而不是試圖找到示例,然後回來,並在這裏發佈問題,如果你不能讓你的東西工作,你會認爲它應該:-)

+0

這只是一個藉口,沒有任何好的樣本。嚴重的是,隨着Java社區的規模,沒有人在開源領域教這些東西嗎? – 2009-01-18 14:09:29

+0

對於真正的'教學'我建議買一本書(我是爲了瞭解春天而做的)。我的觀點僅僅是依賴注入並不是一個很大的想法,它真的被一個特殊的應用程序所證明。 – 2009-01-26 23:00:14

3

我在這個確切的問題上掙扎了一下。這是如此抽象和簡單,我總是擔心我是「做錯了」。

我一直在主項目中使用它,它依賴於其他項目,因爲設置綁定的Guice模塊是主項目的一部分。

我終於意識到庫應該提供模塊本身。此時,您只能依賴模塊(而不是特定模塊)的實例以及由其綁定的接口。

更進一步,您可以使用Java 6中新的ServiceLoader機制來自動定位並安裝類路徑中可用的所有Guice模塊。然後,只需更改類路徑(db-real.jar與db-mock.jar)即可交換依賴關係。