繁体   English   中英

osgi中bootdelegation和DynamicImport-Package有什么区别

[英]What is the difference between bootdelegation and DynamicImport-Package in osgi

两者都将解决osgi中的包依赖关系,它们之间有什么区别

Bootdelegation是一个需要的hack,因为VM中的一些代码假定应用程序类加载器具有com.sun。*类的可见性。 在OSGi中,显然不是这种情况。 引导委派是一个参数,它指定框架可以在引导类路径上执行查找的包。 由于这不是模块化的,所以不要这样做。 它是框架的全球性。

DynamicImport-Package类似,但仅适用于定义的包,仅适用于导出的包。 如果在普通包内容或Import-Package中找不到包,则DynamicImport-Package指定允许在导出包集中搜索的包的模式。 这个想法类似于类路径,你不知道你将得到什么版本。 找到包后,它将永久使用。 但是,如果没有找到,每次访问都会继续查看。 即您可以在事后安装软件包而无需重新启动软件包。

每次需要包中的类时,都会解析通过DynamicImport-Package导入的包。 因此,如果由于解决过程而导致包不可用,则不会失败。 通过这种方式,可能会在运行时抛出ClassNotFoundExceptions。 (将此与可选导入进行比较)

BootDelegation类将从bootdelegation类加载器加载,该类加载器是将OSGi框架加载到JVM中的类加载器http://wiki.osgi.org/wiki/Boot_Delegation http://www2.sys-con.com/itsg /virtualcd/java/archives/0808/chaudhri/index.html http://de.slideshare.net/honnix/osgi-class-loading

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM