OSGi依赖管理

  

    OSGi容器是如何能将jar文件中的一些类隐藏掉,而让另一些类可见呢?这是由于OSGi容器使用Java类加载器来管理类的可见性,OSGi容器为每一个Bundle建立不一样的类加载器,所以每一个Bundle能访问位于下列位置中的类: java

a) 位于Java启动类路径下的、全部以Java.*开头的包中的类; 安全

b) 位于OSGi框架类路径下的类,一般有一个独立的类加载器负责加载框架的实现类及关键的接口类; 框架

c) 位于Bundle空间中的类,这些类一般包含在与Bundle相关的jar文件中,以及加到这个Bundle中的其它jar包中的类。 接口

d) 导入包中的类,例如,HelloWorld Bundle导入了com.javaworld.sample.service包,所以它能访问该包中的类。Bundle级别的访问域是OSGi一个很是强大的功能,例如,它能够让您安全地更新HelloServiceImpl.java类,而没必要担忧依赖于这个类的代码受到破坏 容器

相关文章
相关标签/搜索