OSGi的基本主题是什么?
OSGi是一个面向Java的动态模块化系统。好的,但是基线主题是什么,为什么要开发OSGi?使用OSGi的好处是什么?开发OSGi的主要故事是什么?它为什么存在?是OSGi的基本主题是什么?,osgi,Osgi,OSGi是一个面向Java的动态模块化系统。好的,但是基线主题是什么,为什么要开发OSGi?使用OSGi的好处是什么?开发OSGi的主要故事是什么?它为什么存在?是 Java模块系统:它提供了一种导出和导入Java包并强制执行模块边界的方法,包括显式依赖关系和版本信息 Java系统的通用容器:bundle可以在不停止系统的情况下动态加载和卸载,其中“bundle”基本上是jar文件 面向服务的编程系统:除了通过包对系统进行模块化之外,OSGi还支持面向服务的模块化,包括(PDF)之类的东西
- Java模块系统:它提供了一种导出和导入Java包并强制执行模块边界的方法,包括显式依赖关系和版本信息
- Java系统的通用容器:bundle可以在不停止系统的情况下动态加载和卸载,其中“bundle”基本上是jar文件
- 面向服务的编程系统:除了通过包对系统进行模块化之外,OSGi还支持面向服务的模块化,包括(PDF)之类的东西
OSGi最初是为支持高端嵌入式系统而开发的,比如机顶盒,它激发了显式依赖关系和版本控制,并且在用作较新的企业端容器时使其相当轻量级。如果仔细看,Java中的类路径概念真的很糟糕 您可以在JAR文件中分发类,但在运行时,Java会(几乎)盲目地将所有JAR文件中的所有类放在一个大袋子中,在这个袋子中,同名的类相互掩盖,然后以意外的方式进行交互 OSGi为Java平台带来了适当的运行时模块化,并在此基础上提供了一个强大的服务模型,有时称为“JVM中的SOA” 我强烈建议阅读一些关于OSGi的介绍性文章,这些文章将对这一切意味着什么给出更具体的想法。Alex Blewitt关于Java模块化的InfoQ系列文章可能是一个很好的起点:
Richard无论OSGi提供什么好处,它们都被灵活性的丧失、构建环境的修改以及大量其他变化所掩盖,这些变化主要是由(经验丰富的)开发人员的无能造成的
这些障碍将降低开发人员的生产率,从而降低对源代码进行所有改进的速度(不仅仅是模块化改进)。在OSGi联盟更名之前,OSGi代表“开放服务网关计划”。它的主要目标是嵌入式家庭网关和路由器。我不同意,捆绑包周围的工具非常好,所以它本身可以做很多事情(Bnd和Felix注释,您涵盖了很多)。许多开源库已经有OSGi清单条目(正是因为它很容易添加)。例如:Maven bundle插件生成的配置文件被Felix视为格式错误而拒绝(并且必须手动修复),“Apply to classpath”会破坏Maven项目,当某些东西无法工作时不会出现错误或警告,在wazoo的样板中,iPOJO默默地没有完成它的工作,在消息中拼写错误,需要黑客(pax url)使IDE和部署的JAR之间的工作相同,因为他们过度设计了它,并假设每台机器都将有一个管理员控制OSGi容器,部署可插拔的游戏、图形,对于普通用户来说,音频软件是不合理的。osgi是这样说的:“嘿,我们知道程序员会有坏习惯,但这里有一种方法可以让你更容易养成坏习惯。”