|
|
1
38
好吧,既然你不能有一部分OSGi和一部分非OSGi,你就需要让你的整个应用程序成为OSGi。在最简单的形式中,您可以从整个应用程序中创建一个OSGi包。显然,这不是一种最佳实践,但了解在OSGi容器(Equinox、Felix、Knoplerfish等)中部署包的感觉可能会很有用。 为了将其提升到一个新的水平,您需要开始将应用程序拆分为组件,组件通常应该有一组职责,可以通过一组接口和类依赖关系与应用程序的其他部分隔离开来。纯手工识别这些代码的范围从设计良好、高度内聚但松散耦合的应用程序的简单到您不熟悉的互锁源代码的噩梦。 一些帮助可以来自以下工具 JDepend 它可以显示Java包与系统中其他包/类的耦合。具有低传出耦合的包应该比具有高传出耦合的更容易提取到OSGi包中。使用专业工具可以获得更多的架构见解,例如 Structure 101 . 纯粹在技术层面上,每天使用由160个OSGi捆绑包组成的应用程序并使用Spring DM,我可以确认从“正常”Spring到Spring DM的过渡基本上是无痛的。额外的命名空间以及您可以(并且应该)将OSGi特定的Spring配置隔离在单独的文件中的事实,使得在有和没有OSGi部署场景的情况下都更容易实现。 OSGi是一个深度和广度的组件模型,我推荐以下文档:
一些链接:
|
|
|
2
9
当学习一项新技术时,丰富的工具会让你在没有大麻烦的情况下进入工作。 此时,社区 ops4j.org 提供了一个名为“PAX”的丰富工具集,其中包括:
然后是OSGi纲要服务的许多实现:
..还有一个有用的、独立于框架的社区,但现在这就是广告;-) |
|
3
5
这个答案是在提出这个问题近3年后给出的,但 link 我刚刚发现 非常好 ,尤其是对于使用maven的初学者。一步一步的解释。 |
|
|
4
4
您现有的应用程序是单片的还是分层的? 如果分层,您可以将中间层/应用层转换为在OSGi容器中运行。 根据我的团队的经验,我们发现尝试在OSGi中做web工作很痛苦。其他痛点是Hibernate和Jakarta Commons Logging。 我发现OSGi规范非常可读,我建议您打印出显示类加载算法的流程图。我保证你会有这样的时刻,“为什么我会得到NoClassDefFoundError?”:流程图会告诉你原因。 |
|
|
5
4
尝试 http://neilbartlett.name/blog/osgibook/ 这本书有OSGi最佳实践的实例。 |
|
|
6
3
尝试 http://njbartlett.name/files/osgibook_preview_20091217.pdf 或 第二本书不是我自己读过的,但我听说过它的优点。 第一个对我来说非常有用。他首先介绍了架构,然后介绍了OSGi。 |
|
|
7
3
如果你从OSGi开始,有几个想法需要记住。 正如本线程其他地方提到的,了解类加载非常重要。根据我的经验,每个人迟早都会遇到问题。 另一件需要记住的重要事情是:永远不要持有推荐信!看看构建OSGi服务概念的白板模式(请参阅其他答案之一中的链接)。 根据我的经验,你不应该试图将单一的应用程序转换为基于OSGi的应用程序。这通常会导致严重且无法管理的混乱。重新开始。 下载一个免费提供的独立OSGi实现。我发现Knopflerfish相当好且稳定(我在许多项目中都使用它)。它还附带了大量的源代码。你可以在这里找到它: http://www.knopflerfish.org 另一个好的教程可以在这里找到。 https://pro40.abac.com/deanhiller/cgi-bin/moin.cgi/OsgiTutorial OSGi联盟的Peter Kriens接受了一次很好的采访: http://www.infoq.com/interviews/osgi-peter-kriens .他的主页和博客(这是一个很好的阅读可以在这里找到: http://www.aqute.biz |
|
|
8
1
我真的很喜欢 Apache Felix tutorials 然而,我认为一般来说,在你的应用程序中利用OSGi并不是那种“让我们使用这个框架,因为这是炒作”的决定。这更像是一个设计问题,但OSGi在设计方面给你的一切,你也可以用vanilla Java来实现。 至于运行时,您不能只添加一个现有的应用程序并使其启用OSGi。它需要设计成动态的。Spring DM让你很容易隐藏它,但它仍然存在,你需要注意它。 |
|
|
user29759326 · 如何返回递归函数中的最后一个值? 1 年前 |
|
|
malife89 · 将java中的字符串读取为正确的日期格式 1 年前 |
|
|
Tim · 在java中,有没有更快的方法将字节数组写入文件? 1 年前 |
|
|
rudraraj · java中未声明最终变量 1 年前 |
|
|
Bala Ji · 以下BFS的实施效率如何? 1 年前 |