![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
OSGI
paullinjie
这个作者很懒,什么都没留下…
展开
-
【OSGi】OSGi框架的三个层次
OSGi框架 OSGi框架规范中定义了框架的正确行为;而核心框架可有多种实现方式。 OSGi框架是根据OSGi规范中定义的三个概念层设计的: 1)模块层 模块层关注于打包、共享代码。 模块层定义了OSGi模块的概念(bundle,即包含一个元数据MANIFEST.MF的JAR文件)。 bundle比标准JAR文件更强大,它可以声明哪些包对外可见(Export-Package转载 2017-04-10 17:36:46 · 812 阅读 · 0 评论 -
Require-Bundle与Import-Package
Require-Bundle的作用Require-Bundle的缺点 1、不知道究竟导入了哪些包2、导出包的bundle重构后,会影响导入bundle3、导致导入大量无用的包 为什么引入Require-Bundle? Require-Bundle的作用 Another kind of constraint that can be placed on a bundle is th转载 2017-04-11 16:18:58 · 2527 阅读 · 0 评论 -
【OSGi】OSGi类加载流程
思路 OSGi每个模块都有自己独立的classpath。如何实现这一点呢?是因为OSGi采取了不同的类加载机制: OSGi为每个bundle提供一个类加载器,该加载器能够看到bundle Jar文件内部的类和资源;为了让bundle能互相协作,可以基于依赖关系,从一个bundle类加载器委托到另一个bundle类加载器。 Java和J2EE的类加载模型都是层次化的,只能委托转载 2017-04-11 16:14:29 · 348 阅读 · 0 评论 -
OSGi如何解决Java模块化的不足
网络上很多OSGi的文章上来就Activator实例,看得云里雾里。要想了解OSGi,首先要知道为什么要用OSGi?它有哪些好处? 首先要明确:Java缺少对高级模块化的支持。OSGi服务平台是专门针对Java对模块化支持不足的情况,由OSGi联盟定义的一个行业标准,它引入了一个面向服务的编程模型,被称作“VM中的SOA” Java模块化的不足 为什么说Java缺少对高级模块化的支持?J转载 2017-04-11 16:11:18 · 577 阅读 · 0 评论 -
基于Equinox构建OSGi项目
几种OSGi框架 Several independently implemented OSGi frameworks exist today, including four that are available as open source software. Equinox is the most widely deployed OSGi framework today owing t转载 2017-04-11 09:55:50 · 463 阅读 · 0 评论 -
【OSGi】OSGi生命周期
1 生命周期管理 对于非模块化应用,生命周期将应用作为一个整体来操作; 而对于模块化应用,则可以以细粒度的方式来管理应用的某一个独立部分。 OSGi生命周期管理 OSGi生命周期层有两种不同的作用: 在应用程序外部,定义了对bundle生命周期的相关操作。OSGi生命周期层允许在执行时,从外部安装、启动、更新、停止、卸载不同的bundle,进而定制应用的配置。在应用程序内部,定义了b转载 2017-04-11 09:52:06 · 340 阅读 · 0 评论 -
【OSGi】OSGi与Maven、Eclipse PlugIn的区别
OSGi与Maven Maven也具有模块化系统的特征;但是它只是一个编译时工具,而不是运行时框架。Maven并不是OSGi的竞争者,而是OSGi的一个补充。 通过在pom.xml中指定所依赖jar包的名称、版本号,Maven就能在编译时自动下载正确的jar文件,并部署到classpath中。 然而Maven并没有解决JAR文件的缺点: 同样使用全局的classpath;同样不能做转载 2017-04-11 09:39:23 · 442 阅读 · 0 评论 -
【OSGi】OSGi依赖解析
自动解析依赖 OSGi框架执行的最重要的任务之一就是自动化管理依赖,也就是bundle依赖解析。 bundle类加载器 在执行时,每个bundle都有一个与之关联的类加载器,这个类加载器使得bundle可以获得其有权访问的所有类。当导入bundle连接到导出bundle时,导入bundle的类加载器会得到导出bundle的类加载器引用。因此导入bundle可以委托导出bundle的类转载 2017-04-11 08:19:35 · 516 阅读 · 0 评论 -
2. bundle与模块化
模块层是OSGi框架的最基础层次,是OSGi其他部分的基础。 1、模块 定义: 一个从逻辑上封装实现类的集合,一个基于实现类子集的可选公共API,一个对外部代码依赖关系的集合。 package是Java提供的一种内建的模块化方式,但它有一些限制:http://blog.csdn.NET/vking_wang/article/details/9735395 以上讨论的都是“逻辑模块转载 2017-04-10 17:38:54 · 421 阅读 · 0 评论 -
Service
概念 服务 服务就是:为别人完成的工作。目的:是让别人为你工作,而不是试图自己做一切事情。 和方法调用的区别:服务是指提供者及其使用者之间的一个契约,使用者不关心服务的具体实现,甚至不关心是谁提供的,只要遵守约定的契约即可。 面向服务的设计方式鼓励用即插即用的方式来进行软件开发,这意味着在开发、测试、部署、维护过程中有更大的灵活性。 接口+依赖注入 Java中一转载 2017-04-11 16:33:26 · 515 阅读 · 0 评论