ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

深入理解java虚拟机(13):类加载系统案例-OSGI灵活的类加载架构

2019-11-27 13:03:16  阅读:254  来源: 互联网

标签:13 java package 虚拟机 bundle 申明 OSGI 加载


OSGI灵活的类加载器架构,它制定了一个基于java语言的动态模块化规范。它的每一个模块都是以jar的格式进行封装(称为bundle)。一个bundle可以申明它所依赖的package,通过import导入,也可以导出发布

package.OSGI,Bunlde之间的依赖关系从传统的上层依赖于底层转变成了平级模块之间的关系。引入OSGI可以或者很可能可以实现程序的热插拔,当程序升级更新或者调试出错时,可以只停用或者启用其中一部分。

OSGI上述特点主要依赖于它的灵活的类加载架构,OSGI的类加载器之间只有规则没有委派关系,如果有bundle申明发布package,那么这个package的加载都委派给发布它bundle类加载器去加载。

举一个简单例子

BundleA:申明发布了packageA,依赖于java.*

 

BundleB:申明依赖了packageA和packageC,依赖于java.*

BundleC:申明发布了packageC,依赖于packageA

 

 OSGI提供灵活性时也会产生线程死锁和内存泄露等问题。

标签:13,java,package,虚拟机,bundle,申明,OSGI,加载
来源: https://www.cnblogs.com/xiaofeiyang/p/11941500.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有