簡體   English   中英

osgi中bootdelegation和DynamicImport-Package有什么區別

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM