![](/img/trans.png)
[英]OSGi: What's the difference between Import-Package/Export-Package and Require-Capability/Provide Capability?
[英]What is the difference between bootdelegation and DynamicImport-Package in osgi
兩者都將解決osgi中的包依賴關系,它們之間有什么區別
Bootdelegation是一個需要的hack,因為VM中的一些代碼假定應用程序類加載器具有com.sun。*類的可見性。 在OSGi中,顯然不是這種情況。 引導委派是一個參數,它指定框架可以在引導類路徑上執行查找的包。 由於這不是模塊化的,所以不要這樣做。 它是框架的全球性。
DynamicImport-Package類似,但僅適用於定義的包,僅適用於導出的包。 如果在普通包內容或Import-Package中找不到包,則DynamicImport-Package指定允許在導出包集中搜索的包的模式。 這個想法類似於類路徑,你不知道你將得到什么版本。 找到包后,它將永久使用。 但是,如果沒有找到,每次訪問都會繼續查看。 即您可以在事后安裝軟件包而無需重新啟動軟件包。
每次需要包中的類時,都會解析通過DynamicImport-Package導入的包。 因此,如果由於解決過程而導致包不可用,則不會失敗。 通過這種方式,可能會在運行時拋出ClassNotFoundExceptions。 (將此與可選導入進行比較)
BootDelegation類將從bootdelegation類加載器加載,該類加載器是將OSGi框架加載到JVM中的類加載器http://wiki.osgi.org/wiki/Boot_Delegation http://www2.sys-con.com/itsg /virtualcd/java/archives/0808/chaudhri/index.html http://de.slideshare.net/honnix/osgi-class-loading
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.