osgi

OSGi容器是如何能將jar文件中的一些類隱藏掉,而讓另外一些類可見呢?這是因爲OSGi容器使用Java類加載器來管理類的可見性,OSGi容器爲每個Bundle創建不同的類加載器,因此每個Bundle能訪問位於下列位置中的類:

a) 位於Java啓動類路徑下的、所有以Java.*開頭的包中的類;

b) 位於OSGi框架類路徑下的類,通常有一個獨立的類加載器負責加載框架的實現類及關鍵的接口類;

c) 位於Bundle空間中的類,這些類通常包含在與Bundle相關的jar文件中,以及加到這個Bundle中的其它jar包中的類。

d) 導入包中的類,例如,HelloWorld Bundle導入了com.javaworld.sample.service包,因此它能訪問該包中的類。Bundle級別的訪問域是OSGi一個非常強大的功能,例如,它可以讓您安全地更新HelloServiceImpl.java類,而不必擔心依賴於這個類的代碼受到破壞。

發佈了73 篇原創文章 · 獲贊 38 · 訪問量 26萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章