Eclipse plugin 关于osgi的一些疑问

Eclipse plugin 关于osgi的一些疑问,eclipse-plugin,osgi,Eclipse Plugin,Osgi,我是OSGI框架的新手。我正在浏览这些网站并阅读有关OSGI框架的内容。坦率地说,我什么都不懂。以下是我的疑问 OSGi应该提供模块化。我们不能通过普通JAR实现模块化吗 OSGi具有动态组件模型意味着什么 捆绑包可以安装、启动、停止、更新等。我们为什么要安装捆绑包?为什么我们不能像访问其他普通罐子一样直接访问 我完全糊涂了。有人能回答我吗?如果可能的话,也可以举一些例子 不是。JAR是类的开放容器,不提供运行时封装。看 动态意味着可以在VM/OSGi框架运行时更改捆绑包的生命周期。也就是说,安

我是OSGI框架的新手。我正在浏览这些网站并阅读有关OSGI框架的内容。坦率地说,我什么都不懂。以下是我的疑问

  • OSGi应该提供模块化。我们不能通过普通JAR实现模块化吗
  • OSGi具有动态组件模型意味着什么
  • 捆绑包可以安装、启动、停止、更新等。我们为什么要安装捆绑包?为什么我们不能像访问其他普通罐子一样直接访问
  • 我完全糊涂了。有人能回答我吗?如果可能的话,也可以举一些例子

  • 不是。JAR是类的开放容器,不提供运行时封装。看
  • 动态意味着可以在VM/OSGi框架运行时更改捆绑包的生命周期。也就是说,安装/启动/停止/更新/卸载捆绑包不需要重新启动系统
  • 您希望执行这些操作来管理捆绑包的生命周期。人们不必以动态的方式使用OSGi。您只需将其用于模块化和服务,而只需在启动框架之前安装捆绑包

  • 阅读OSGi规范的实现可能是有利的

    如果您使用过Eclipse,那么您已经体验过OSGi的一些优点,甚至可能不知道它

    这里有一个关于什么是春分的基本描述


    我对模块的定义是一个封装单元(即隐藏内部细节),通过契约(即预定义的一组可能的交互)与其他模块通信。JAR文件不是模块,因为它不显示这两个属性。没有封装,所有内部实现细节都可以从外部看到和访问。没有契约,您只需将JAR文件放在类路径上,并希望它提供您想要的特性

    动态意味着可以在运行时安装、升级或卸载OSGi捆绑包(模块)。这对于升级正在运行的系统或在大型网络上高效地部署软件非常有用


    必须安装捆绑包,因为在使用软件之前必须先安装软件。JAR文件也必须安装!只是安装方式略有不同,即JAR文件添加到类路径,而bundle是使用
    install
    命令安装的(也可以编写脚本或从API调用)。OSGi让我们对这个过程有了更多的控制。

    除了捆绑包作为真正的模块这一点(这一点在所有其他答案中都有论述)之外,还有一些其他特性使OSGi非常强大:

  • 服务层使您能够在运行时动态连接对象。与之相结合,您将获得一个功能强大且灵活的编程模型,该模型具有
  • 提供了一种更高级别的IOC,可以为可扩展性带来巨大的好处

  • 我试着在OSGi博客中回答您的第一个问题:


    下周,我将回答下一个问题。

    我保证我不是故意刁难,但OSGi提供的功能只有在最佳实践Java体系结构的环境中才有意义。OSGi是一种强大的工具,用于构建结构良好的Java应用程序。如果没有这个目标和一组基本要素,模块化、组件生命周期和“JVM中的SOA”概念就不值得关注。@chad:我认为你在这方面做得很好,一点也不挑剔:)