嗯,我从一个 jsf web 应用程序开始,将使用 CDI,但在 Weld 和 Solder 之间有点混淆,或者是 Solder 在引擎盖下使用 Weld。
Weld 之前也被称为 WebBeans 吗?
就像 Apache MyFaces 一样,很明显 CDI 实现是 CODI
嗯,我从一个 jsf web 应用程序开始,将使用 CDI,但在 Weld 和 Solder 之间有点混淆,或者是 Solder 在引擎盖下使用 Weld。
Weld 之前也被称为 WebBeans 吗?
就像 Apache MyFaces 一样,很明显 CDI 实现是 CODI
JBoss Weld 是 CDI 规范的一种实现(参考)。
在最终确定之前,CDI 规范被称为 WebBeans,这可能会导致一些混乱。
Apache CODI 不是 CDI 实现。它是一组 CDI 扩展,有助于在多个场景中使用 CDI。
Solder 和 Seam3 也是如此。Solder 是一组低级扩展,而 Seam3 是一组依赖于 Solder 提供更高级别扩展的库。有人提议在未来版本的 CDI 规范中包含一些 Solder 功能。
CODI、Solder 和 Seam3 需要 CDI 实现。Weld 是参考之一,其他有价值的实现是 OpenWebBeans(来自 Apache)和 CanDI(来自 Caucho Resin)。
虽然 CDI 实现应该是可互换的,但从实际的角度来看,您应该选择您喜欢更多的 CODI 还是 Seam3,然后选择 CODI/OpenWebBeans 堆栈或 Seam3/Solder/Weld 堆栈。
更新:这个话题进展很快。现在建议阅读此Seam.Next 公告,因为 Seam、Solder 和 CODI 最终将合并到 Apache 旗下名为DeltaSpike的独特项目中。