也许这似乎是一个愚蠢的问题,但我真的很困惑。Seam 3 和 Weld CDI 是一回事吗?我正在阅读一些涉及“CDI(焊接)/接缝 3”的帖子,我应该将它们视为同一件事吗?
问问题
2516 次
1 回答
7
Seam 3 严重依赖 CDI (JSR-299)。Weld 是 CDI 的参考实现。另一方面,Seam是一个用于开发 Web 应用程序的完整框架,具有大量功能(请参阅链接中的模块列表)。
通常,CDI 实现由 Java EE 应用程序服务器(例如,JBoss/Wildfly 随 Weld 提供)提供。然而,任何 CDI 的完整实现都应该适合与 Seam 一起使用。看这张图片:
因此,您的问题的答案是否定的,但 Seam 广泛使用 Weld(或任何 CDI 实现)。这可能就是您经常看到提到“CDI(焊接)/焊缝”的帖子的原因。
请注意,Seam 3 的实现已经停止,可能是因为这些年来 Java EE 的改进。
这是Seam 项目页面中有关Weld的信息:
Weld 是 JSR-299 的参考实现 (RI):Java EE 平台 (CDI) 的 Java 上下文和依赖注入。CDI 是依赖注入和上下文生命周期管理的 Java 标准
页面上还有以下信息:
- CDI 是 Java EE 中包含的 JCP 规范
- Weld 是 CDI 的参考实现
- Seam 3 是一组扩展 CDI 以提供 Java EE 6 之外的功能的模块
最后,这应该让您清楚:
然而,Seam 3 是 JSR-299 的超集。将 JSR-299 视为 Seam 3 的核心——它是您的应用程序组件以及构成 Seam 框架的内置组件的基本编程模型。Weld 是我们对这种编程模型的实现。
于 2013-05-20T11:38:10.477 回答