2017-10-06 108 views
0

每个Karaf包是否由单独的类加载器加载?Karaf:Bundles实例和类加载器

SAME classloader是否加载了所有功能的捆绑包?

如果我在试图开发的新功能中包含依赖功能,该功能的捆绑包是否使用SAME类加载器作为我正在尝试开发的功能?

回答

2

在OSGi中,每个bundle都有自己的类加载器。这个类加载器为bundle提供服务,并委托给bundle从此bundle导入包的类加载器。所以基本上每个类通常由类所在的bundle的类加载器加载.Smaifest和OSGi解析器中的Import-Package和Export-Package语句确保bundle也可以看到其他bundle的类。

卡拉夫特征与类加载器完全无关。他们只是简单地定义哪些包被加载。