2013-06-04 23 views
4

我正在向一個非常年輕的團隊教授Java。我必須將它們介紹給IoC(控制反轉)。 從Spring開始太複雜了(他們現在知道了一些java,並且很多jdbc都在引擎蓋下)。一個非常小的IoC容器,用於教授Java中的控制倒置?

我想讓他們寫一個簡單的IoC contianer,但我需要一個非常好的示例。 我想到了pico容器,但我想要的東西很小(最多2-3堂課)。 http://picocontainer.codehaus.org/

你知道嗎?

+0

嗯,在開始一個完整的IoC容器之前,可能會給他們一些例子以確保他們理解依賴注入的原理,然後你可以從這些知識中建立起來 –

+0

是的,我的想法是顯示優點和缺點的IoC,有一個簡單的依賴例子。顯示如何明確地執行此操作,然後如何自動進行連線。 – daitangio

+0

您可以在沒有容器的情況下執行IoC和依賴注入。我使用普通的Java代碼來完成我的DI構造和組件連線。 –

回答

0

我推薦從Google Guice開始。它比Spring更緊湊,並以最少量的代碼覆蓋了良好IoC的所有特徵。

你也許可以借鑑大量的吉斯入門指南爲您教材:https://code.google.com/p/google-guice/wiki/GettingStarted

+0

Guice看起來不錯,但對於我的目標觀衆來說它似乎仍然太大。 – daitangio

2

爲什麼不教使用焊接SE?它原則上與J2EE 6+規範中的Weld相同,但IOC容器的初始化必須在SE版本中明確完成,並且可以忽略Web層中固有的額外複雜性。

此外,Weld真的非常簡約,您可以使用非常小的例子,這些例子不依賴於像Servlet容器這樣的複雜事物,然後將它一直工作到完整的J2EE多層應用程序if你如此渴望。

這也是IOC的標準跟蹤,儘管它沒有Spring或Guice的市場滲透,但您可以免費獲得J2EE 6容器。

http://seamframework.org/Weld

注:一個字的警告,虛焊的錯誤可能是在我的經驗次無益。當事情真的爆發時,Spring提供了一個更清晰的概念。

+0

Servlet容器(tomcat)也基於IOC工作,不是嗎?使用'web.xml' url模式匹配。 – overexchange