Weld和HK2之间的关系是什么?

时间:2014-08-13 15:56:25

标签: glassfish cdi weld hk2

这可能是一个愚蠢的问题,但我对它感到困惑,我无法在任何地方找到任何明确的解释。

HK2是一个实现JS330的依赖注入框架, Glassfish V3和V4的基础。据我所知,泽西岛使用它

Weld是CDI的参考实现,它也是一个依赖注入框架,也可以在Glassfish中使用?

所以我的问题是这些

  • 它们是同一规格的不同实现吗?
  • 他们是不同规格的实现吗?
  • 在什么情况下我应该使用其中一种?

我理解这些问题源于我对Java EE整个生态系统的微薄理解,但我们将非常感谢任何答案

1 个答案:

答案 0 :(得分:18)

JSR330处理依赖注入。实现是例如Guice,HK2和Spring。 Weld确实实现了JSR330,但是通过实现JSR299,指定模块,拦截器,自定义范围等方面更进了一步......请参阅this article进行简短比较。

Java EE结合了多个规范,不仅包括注入,还包括持久性,安全性,Web服务,服务器面......,因此需要应用服务器,如glassfish或jboss,而(C)DI可以轻松地与标准Web容器一起使用( jetty,tomcat)甚至是独立的应用程序。