Import-Package與DynamicImport-Package的使用場景
如果一個Bundle不能確定需要Package中的那些Class,則使用DynamicImport-Package;否則使用Imort-
Package.
DynamicImport-Package: 如果一個Bundle需要某些類時,而這些使用了Class.forName()進行加載,此時
類之間的依賴關係很難被檢測出來,此時使用該Header可以在解析依賴關係時自動從類路徑中搜尋需要的類,
從而確保依賴關係滿足;一個Bundel使用該Header,在Bundle啓動的過程中是不需要所依賴的Package能被
Resolved的,在該Bundle後期需要的時候再去臨時動態Resolve;同時該Header支持(*),如:
DynamicImport-Package:com.apress.ch3.*
這將能夠同時導入com.apress.ch3下的所有類。
Import-Package: 需要Bundle在Resolve時所依賴的Package能被Resolve, 而且不支持通配符(*);同時這兩
個Header支持屬性:resolution:=option, 當Bundle在Resolve時會試圖解析依賴的Package.
另外: DynamicImport-Package當一個類加載器試圖加載該Header指定的Package時,每次將Wire一個
Package;而Import-Package有屬性resolution:=option時,將在bundle resolve時只wire一次依賴的
Package.
另外:http://springsfeng.iteye.com/blog/1389080 這篇文章中很多知識也介紹的很好