1

我正在使用 OSGi 开始一个项目,在定义处理服务注册等的方式时,我面临着一个非常重要的选择......

如果我没记错的话,我有三个选择:

  • 通过实现服务侦听器并处理我自己的寄存器来使用手动解决方案(实际上可能不是最糟糕的选择)
  • 使用声明式服务范例:看起来不错,但我觉得它现在有点过时了。我对吗 ?
  • 使用Spring DM范式:它似乎是最新的范式,但我不确定它是否已经完全标准化。我是否需要一个特殊的 OSGi 实现来运行它(比如Virgo/SpringDM 服务器?)或者我可以在包含插件后立即使用我的经典 OSGi 平台org.springframework.*吗?

你对我的审讯有什么意见或信息吗?您有首选(为什么?)还是使用我列表中未包含的其他解决方案?

首先十分感谢。

4

2 回答 2

2

声明式服务 (DS) 并未被弃用,它们实际上是在 OSGi 中处理服务绑定/取消绑定的最简洁方式。您可以手动完成,根据您的用例,这可能会更好,但通常 DS 很好。SpringDM 在下面使用 Equinox,但他们为您包装了它以使某些东西更具弹性。我从未尝试过 SpringDM,所以不能发表太多评论。

如果您计划将来使用/集成 Spring,请从 SpringDM 开始。否则,从 DS 开始。如果您需要做一些 DS 无法处理的事情,您可以使用服务跟踪器手动完成。可以将 DS 和手动服务处理混合使用。

我认为您有第四个选项,称为“蓝图”,它在过去 2 年的某个时候被提议作为 DS 的替代品。我不知道他们去了哪里,但我认为 SpringDM 可能在内部使用它。

于 2011-07-12T12:46:47.997 回答
1

除了@omerkudat 建议之外,您还可以查看比 DS 更高级的iPOJO,但它不是官方规范的一部分。

于 2011-07-12T14:24:43.993 回答