簡體   English   中英

純 Java 中的依賴注入

[英]Dependency Injection in plain Java

我有一個用 Java SE (JdK 1.7) 編寫的大型應用程序。 但是越來越難維護了。 我認為將 DI 引入這個項目是個好主意。 只要我有 Java EE 框架的經驗,我想知道,當一個人不使用任何容器(如 Glassfish 或 Spring 框架)時,最常見的實現依賴注入的方法是什么。 我讀過有關 Weld 和 Guice 的文章,但不知道哪個更好,甚至在容器外單獨使用諸如 DI 之類的技術是否“正常”。

我如何從 Java SE7 中的 IoC 中受益,它甚至合理嗎? 如果是,那么在這樣一個普通項目中用於 DI 的庫是哪個?

我想要一個類似的東西,並決定使用 guice:

Guice(發音為“juice”)是一個輕量級的 Java 5 及更高版本的依賴注入框架,由 Google 提供給您。 https://code.google.com/p/google-guice/

它幾乎沒有依賴項,不需要另一個容器/框架來運行,並且有很好的文檔記錄。

在容器外使用 DI 是完全正常的,並且非常值得前期成本。 我節省了許多小時的開發時間,因為現在我可以通過遵循一個簡單的模式輕松安全地連接依賴項,並在整個應用程序中創建一致性。

我使用過 Guice(很多)和 Spring(一點)。

Spring 很大但模塊化。 這意味着如果你只想要一點,你可以將它設置為只使用一點,因為所有其他模塊都遵循核心中使用的相同模式,你可以輕松地選擇它們。 然而,教程等可能會大量進入 Spring,這可能會混淆問題。

Guice 小而有針對性。 它只包含一點,所以很容易學習。 但是當您想要更多時,它提供的幫助很小。

IMO Guice 如果您想快速上手並且沒有任何人使用 Spring XP,那么它是很好的選擇。 雖然它的教程較少,但了解它也更簡單,而且教程通常更集中。

如果您已經擁有使用 Spring XP 的人,或者您打算在短期內使用更多 Spring-y 優點,那么 Spring 是不錯的選擇。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM