我瞭解如何,但似乎無法正式塑造定義。春天DI?接口類型?
由於已知的DI可以通過構造函數或setter或接口完成。 我對最新的一種基於界面的DI感到困惑,是否在春季使用?
更新:我在這裏給了錯誤的檢查,導致錯誤的理解。
要解決它:
說我們有setter和在二傳手我們注入一些類實現的接口。這是通過setter還是接口認爲是DI?
http://martinfowler.com/articles/injection.html#UsingAServiceLocator 本文共分DI上:。
「主要有三種風格的依賴注入我使用他們的名字是構造器注入,Setter注入和接口注入。如果在當前關於Inversion of Control的討論中,你將會聽到這些被稱爲類型1 IoC(接口注入),類型2 IoC(setter注入)和類型3 IoC(構造函數注入)的討論。很難記住,這就是爲什麼我使用了我在這裏的名字。「
Else服務定位符模式用於IoC,它是實際使@Autowired成爲可能的模式嗎? - 也就是說,並非所有的類都需要在xml中聲明爲DI,因爲我們可以將它們聲明爲@Repository或@Controller,或者如果我記得正確的話,可以再次聲明它們。
謝謝,
請與其他DI方法比較,因爲現在我更加困惑。我明白了意思,但讓我們暫時離開@Autowired。(忘了上下文:組件掃描 - 說我們沒有它)請通過setter和接口顯示DI之間的差異 - 你可以在setter中設置接口 - 然後通過接口或通過setter調用什麼?那麼爲什麼它通過設置器或接口在DI上正式分配。 – Aubergine 2012-02-28 09:19:37
「通過設置者和界面的DI之間的區別」 - 蘋果和橙子,他們沒有任何關係。見上面的編輯。 – pap 2012-02-28 09:29:12
我完全理解你在做什麼以及它是如何工作的(我自己實現了,它的工作非常出色)這就是我認爲它無法比擬的。但爲什麼本文的作者將接口注入與setter和構造函數注入一起沿着這條線? – Aubergine 2012-02-28 09:37:09