osgi学习之---包引用

在osgi中,实现package的引用,分为动态和直接引用,如下:
1.import-package 为直接引用,当bundle被resolve的时候,会去查找对应的引用包,如果被引用的包所在的bundle还不可用的话,则resolve失败

2.DynamicImport-Package 为动态引用,被引用的package只有在真正调用的时候才会被加载,而不是resolve阶段;

3.动态引用也可以用上面1这个标签,但是加入属性说明,如下:
Import-package: org.riawork.opendoc.osgi;resolution:=optional
后面的resolution:=optional配置即表示动态

4.使用动态配置时,可以用×号表示所有的都可以动态获取,这种配置可以解决以下场景的问题:
    架构中使用了osgi,但是封装了osgi,目的是让业务开发人员不知道osgi中MANIFEST.MF文件存在,采用动态生成mf文件的策略,此时无法知道某个bundle都引用了那些业务人员指定的package。就可以采用DynamicImport-Package:×来代指都动态引用

猜你喜欢

转载自never-chi.iteye.com/blog/1505856