任何人都可以告訴我組件廠和服務工廠的區別OSGI。我在谷歌搜索了很多,但找不到服務工廠和組件工廠之間區別的明確解釋。服務工廠與OSGI組件廠之間的區別
1
A
回答
1
tl; dr:你幾乎肯定不想使用ComponentFactory,所以我建議忽略它。
在我解釋服務工廠之前,重要的是要明白,OSGi中的大多數服務在概念上是單例。當你註冊一個服務時,你將一個Java對象放入註冊表中,並且該對象必須實現它已經註冊的接口。當客戶查找你的服務(使用它的接口)時,他們都會得到同樣的對象。
使用服務工廠,您可以註冊一個創建實現該接口的對象的工廠。 OSGi使用這個工廠創建一個新的實例,每個消費包使用。這很有用,因爲您現在可以爲每個消費包提供一個稍微不同的對象。例如,如果您正在實施日誌記錄服務,則使用服務工廠可以讓您跟蹤哪些軟件包正在調用日誌。
但是,服務工廠對消費者完全透明。它只是以正常的方式使用服務。這很好,但有時消費者需要程序控制,即消費者決定何時應該創建服務對象以及何時應該銷燬服務對象。這不適用於服務工廠。
部件工廠是提供這種程序控制的早期嘗試。我認爲它們已經過時了。它們不易使用,因爲您必須將提供者和使用者都與Declarative Services API耦合。
現在你應該使用prototype作用域的服務,在OSGi的版本6中引入的,我在博客這些here
相關問題
- 1. 這是服務和工廠之間的區別嗎?
- 2. 工廠,供應商和服務之間的區別?
- 3. React.js和jQueryUI構件工廠之間的區別
- 4. 沒有託管服務或工廠的OSGi軟件包配置
- 5. 廠服務與AngularJS
- 6. 定義服務和工廠分別
- 7. AngularJS:工廠$ http服務
- 8. 服務工廠實現使用的聲明式服務在OSGi的
- 9. PLKs和Web服務軟件工廠
- 10. 工廠對象與工廠功能
- 11. 通用服務工廠<T>爲WCF通道工廠和StructureMap與MVC 3
- 12. Ember JS - 組件vs.工廠
- 13. 可可中的類集羣和抽象工廠之間的區別
- 14. 服務工廠不能正常工作
- 15. 在OSGi中加載框架工廠
- 16. 工廠類別的價值
- 17. ASP.NET核心依賴注入:工廠和實例之間的區別?
- 18. Netbeans平臺和OSGI之間的區別
- 19. 工廠方法和抽象工廠設計模式有什麼區別?
- 20. 存儲庫和工廠模式之間的差別
- 21. 工廠創建工廠?
- 22. 我應該在哪裏使用angularjs中的$ http? - >工廠和服務區別
- 23. 與工廠女孩
- 24. 與工廠女孩
- 25. 立面圖案和abstarct工廠圖案之間有什麼區別?
- 26. 「傳統」COM和COM +之間的區別(在組件服務中)
- 27. 提供者,服務和工廠在angularJs中的抽象級別
- 28. DI與工廠模式有什麼區別?
- 29. 創建片段與工廠方法和Fragment.instantiate有什麼區別?
- 30. 服務定位器和工廠設計模式有什麼區別?
你的意思是說組件工廠是一個早期嘗試提供這種編程控制。這是通過組件工廠達成還是仍然公開?問題是我們沒有使用最新的osgi版本。所以我們不能使用OSGi Release 6中提到的示波器 – Shriram
我不明白你的問題,你可以重新翻譯一下嗎?您是否確實需要消費者通過服務對象進行程序控制?這在實踐中很少需要。 –
我的要求是爲組件創建組件工廠。我問過你的問題來自你發佈的答案。 ie)是否通過組件工廠進行編程控制?編寫組件工廠時還有一件事(工廠=「xxxx」),我使用'@service'和'@component'。工廠實施中@serivce的需求是什麼? – Shriram