回答
它們是無關的。
編輯:
DI是由OSGi Alliance指定a conecpt首先由Martin Fowler描述,OSGi is a module system for Java that implements a complete and dynamic component model。
- DI可以在從Java不同的語言中使用,OSGi是特定於Java
- OSGi的試圖解決版本部件的問題,DI是舊服務定位器模式的替代方案。
它們在概念上相關,因爲它們都提供了「關注點分離」機制。
OSGI在模塊級別上做到了這一點 - 考慮Eclipse架構帶有多個插件,每個插件負責特定的關注點/功能。
DI面向對象層次 - 它提供了從多個連接在一起的對象中構建應用程序的方法,每個對象都負責其特定的功能。
從技術上講它們是不同的。 OSGI是一個具有多種實現的規範。 DI曾經是具有多種實現和API的設計模式。然而,JCP有一些最近的工作嘗試標準化DI API(JSR 330)
OSGi規範由兩個分開的部分組成:核心和綱要。
核心部分是Java模塊系統的規範。因此,核心規範與DI的概念沒有關係。
另一方面,綱要部分指定了OSGi容器可以提供的一系列服務。 在這些服務中,您可以找到「聲明式服務規範」(OSGi Compendium Services,第112章),這是第一次將熟悉的DI概念引入OSGi。 這個想法很簡單:由於OSGi允許開發人員實現,定義和註冊服務,因此聲明式服務規範爲開發人員提供了定義依賴於一系列其他基礎服務的服務的可能性。這在OSGi中是一個特別有趣(而且很難)的問題,因爲服務在定義上是不可靠的,它們可以出現和消失。
除了聲明性服務規範,有至少兩個其他流行的解決方案試圖提供在OSGi的更強大的DI框架:
- Peaberry的Guice框架OSGi的
- Spring Dynamic Modules for OSGi (aka Spring DM)的延伸, OSGi擴展的Spring Framework
值得注意的是即將到來的R4.2版本的OSGi規範將包含一個新的概念這個名爲Blueprint Services的規範將爲基於Spring DM框架的OSGi提供完整的DI解決方案(Spring團隊已經對這個新規範做出了重大貢獻)
- 1. C++和Ruby之間的關係和依賴關係是什麼?
- 2. SubSonic SimpleRepository和依賴關係注入
- 3. 兩個OSGi包之間的相互依賴關係
- 4. C#依賴注入 - 如何注入無源的依賴關係?
- 5. OSGi Felix依賴關係管理器註釋和抽象類
- 6. OSGi包導入包和嵌入依賴關係
- 7. 將注入器注入中間件依賴關係
- 8. 什麼是依賴注入?
- 9. 管理OSGi包依賴關係的正確過程是什麼?
- 10. 依賴注入 - 當你有很多依賴關係時該怎麼辦?
- 11. Jersey Endpoint + OSGi依賴關係,跟蹤
- 12. 查看osgi包的依賴關係?
- 13. OSGi服務類依賴關係
- 14. OSGi的依賴關係可視化
- 15. Glassfish OSGI與依賴關係,如何?
- 16. no osgi準備好依賴關係
- 17. OSGi中的依賴注入vs測試
- 18. 在Global.asax中注入依賴關係
- 19. 查看依賴關係注入
- 20. Aurelia注入模擬依賴關係
- 21. 向IWindsorInstaller實現注入依賴關係
- 22. 將依賴關係注入靜態類
- 23. XtextDocumentProvider的依賴關係注入配置
- 24. 向測試注入依賴關係
- 25. Hazelcast不注入彈簧依賴關係
- 26. 使用Ninject注入AutoMapper依賴關係
- 27. 牙籤不注入依賴關係
- 28. Unity/EntLib:向CustomTraceListener注入依賴關係
- 29. 向Guice注入依賴關係到ServletContextListener
- 30. Angular-Access config注入依賴關係
謝謝。 可以擴展嗎? – flybywire 2009-08-31 13:11:46