【问题标题】:Gemini and Apache Aries blueprint containerGemini 和 Apache Aries 蓝图容器
【发布时间】:2025-12-13 18:25:02
【问题描述】:

Gemini 是 OSGi 蓝图容器的参考实现,Apache Aries 是另一个广泛使用的蓝图容器……包括在 Apache Karaf 中。

如果我正在开始一个新项目(需要开源技术)并计划使用蓝图,那么在这两者之间进行选择时我应该考虑什么?

是根据要使用的 OSGi 容器来选择的,其中:

  • 对于处女座来说,双子座是你最好的/唯一的?蓝图容器选择
  • 对于 Apache Karaf,如果首选,则为 Apache Aries 的蓝图容器

这还重要吗?即我可以根据蓝图规范编写代码,让部署决定在生产中使用哪个 DI 容器?

对不起,如果这个问题不是很具体,但这个话题本身让我很困惑。

【问题讨论】:

    标签: osgi


    【解决方案1】:

    如果您只使用蓝图,那么您根据规范进行编码并在部署时决定的想法是一个不错的想法。两个实现的行为应该是相同的。如果你不走运,你会在两者中发现不同的错误,但希望不会,因为这两种实现都是成熟的。可能影响您最终决定的一个因素是您可能会发现两者之间的性能不同。 (但为了性能,衡量,不要猜测!)

    如果您打算做超出核心蓝图的事情,例如容器管理的 JPA 和 JTA,您会发现 Aries 和 Gemini 之间存在更明显的差异。我知道 Aries 在这方面有许多蓝图扩展器,例如(我是 Aries 提交者)。

    原则上白羊座应该在处女座运行,双子座运行在卡拉夫,但我不确定我是否愿意自己尝试,因为这两个堆栈中的东西都建立在蓝图之上。

    --

    http://www.manning.com/cummins - 企业 OSGi 在行动

    【讨论】:

    • 不会像this one 这样的差异导致实际上无法在部署之前做出决定吗?
    • 如果您严格按照规范进行编码,您可以将决定推迟到部署时间。如果您想利用编程模型的扩展,那么需要提前做出决定是正确的。