Gemini是OSGi蓝图容器的参考实现,Apache Aries是另一个被广泛使用的蓝图容器......包括在Apache Karaf中。
如果我要开始一个新项目(以开源技术为要求)并计划使用蓝图,那么在选择这两个项目时应该考虑哪些因素?
选择是基于将使用的OSGi容器,其中:
甚至重要吗?即我可以只针对蓝图规范进行编码,让部署决定生产中使用哪个DI容器吗?
很抱歉,如果这个问题不是很具体,但主题本身对我来说相当混乱。
答案 0 :(得分:5)
如果您只使用Blueprint,那么您对规范进行编码并在部署时决定的想法是一个很好的想法。两个实现的行为应该是相同的。如果你运气不好,你会发现两者中存在不同的错误,但希望不会因为两种实现都成熟。可能影响您最终决策的一个因素是您可能会发现两者之间的表现不同。 (但是为了表现,衡量,不要猜!)
如果你要做的事情超出核心蓝图,比如容器管理的JPA和JTA,你会发现Aries和Gemini之间存在更明显的差异。我知道Aries在这个领域有很多蓝图扩展器,例如(我是白羊座的提交者)。
原则上,Aries应该在Karago的Virgo和Gemini中运行,但我不确定我是否愿意自己尝试,因为两个堆栈中的东西都建立在蓝图上。
-
http://www.manning.com/cummins - 企业OSGi在行动