关闭

OSGI bundle的知识

180人阅读 评论(0) 收藏 举报
分类:

 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.

1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:19295次
    • 积分:762
    • 等级:
    • 排名:千里之外
    • 原创:51篇
    • 转载:44篇
    • 译文:0篇
    • 评论:1条
    文章分类
    最新评论