【OSGi】
文章平均质量分 89
AlphaWang
这个作者很懒,什么都没留下…
展开
-
【OSGi】Service
服务服务就是:为别人完成的工作。目的:是让别人为你工作,而不是试图自己做一切事情。和方法调用的区别:服务是指提供者及其使用者之间的一个契约,使用者不关心服务的具体实现,甚至不关心是谁提供的,只要遵守约定的契约即可。面向服务的设计方式鼓励用即插即用的方式来进行软件开发,这意味着在开发、测试、部署、维护过程中有更大的灵活性。接口+依赖注入Java中一般是基于接口编程的,然而除非我们知道具体的接口实现类,否则我们无法创建一个接口实例。传统Java可以通过依赖注入(Dependency Inje原创 2013-11-17 09:56:02 · 13954 阅读 · 5 评论 -
【OSGi】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 i原创 2013-10-27 20:12:48 · 13021 阅读 · 0 评论 -
【OSGi】OSGi类加载流程
OSGi每个模块都有自己独立的classpath。如何实现这一点呢?是因为OSGi采取了不同的类加载机制: OSGi为每个bundle提供一个类加载器,该加载器能够看到bundle Jar文件内部的类和资源; 为了让bundle能互相协作,可以基于依赖关系,从一个bundle类加载器委托到另一个bundle类加载器。原创 2013-10-19 21:29:37 · 17810 阅读 · 1 评论 -
基于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原创 2013-10-07 11:07:43 · 2699 阅读 · 0 评论 -
【OSGi】OSGi依赖解析
OSGi框架执行的最重要的任务之一就是自动化管理依赖,也就是bundle依赖解析。OSGi框架的优势之一就是支持并行的多版本。如果导入bundle可以找到多个对应的导出bundle,OSGi如何确定使用哪个导出bundle呢?原创 2013-08-25 17:00:42 · 5038 阅读 · 0 评论 -
【OSGi】OSGi生命周期
OSGi生命周期层有两种不同的作用: 在应用程序外部,定义了对bundle生命周期的相关操作。OSGi生命周期层允许在执行时,从外部安装、启动、更新、停止、卸载不同的bundle,进而定制应用的配置。 在应用程序内部,定义了bundle访问其执行上下文的方式,为bundle提供了一种与OSGi框架交互的途径以及一些执行时的便利条件。原创 2013-10-07 10:17:47 · 9389 阅读 · 4 评论 -
【OSGi】OSGi如何解决Java模块化的不足
为什么说Java缺少对高级模块化的支持?Java确实以面向对象的方式提供了某种程度的模块化,但它从未考虑支持粗粒度的模块化编程。原创 2013-10-07 12:46:50 · 10079 阅读 · 2 评论 -
【OSGi】OSGi框架的三个层次
网络上很多OSGi的文章上来就Activator实例,看得云里雾里。要想了解OSGi,首先要知道为什么要用OSGi?它有哪些好处?首先要明确:Java缺少对高级模块化的支持。OSGi服务平台是专门针对Java对模块化支持不足的情况,由OSGi联盟定义的一个行业标准,它引入了一个面向服务的编程模型,被称作“VM中的SOA”Java模块化的不足为什么说Java缺少对高级模块化的原创 2013-08-04 12:26:48 · 15644 阅读 · 2 评论 -
【OSGi】OSGi与Maven、Eclipse PlugIn的区别
Maven也具有模块化系统的特征;但是它只是一个编译时工具,而不是运行时框架。Maven并不是OSGi的竞争者,而是OSGi的一个补充。然而Maven并没有解决JAR文件的缺点: 同样使用全局的classpath; 同样不能做到包级别的信息隐藏;而且pom.xml的格式与OSGi格式并不兼容。所以,如果用Maven编译OSGi系统,通常需要定义两遍metadata: 在pom.xml中定义Maven的metadata 在MANIFEST.MF中定义OSGi的metada原创 2013-09-16 21:50:48 · 6830 阅读 · 0 评论 -
【OSGi】2. bundle与模块化
模块层是OSGi框架的最基础层次,是OSGi其他部分的基础。1、模块定义:一个从逻辑上封装实现类的集合,一个基于实现类子集的可选公共API,一个对外部代码依赖关系的集合。package是Java提供的一种内建的模块化方式,但它有一些限制:http://blog.csdn.net/vking_wang/article/details/9735395以上讨论的都是“原创 2013-08-18 18:31:57 · 8693 阅读 · 0 评论